PDA

View Full Version : سوال : *char و char



rangine
چهارشنبه 28 تیر 1391, 13:05 عصر
سلام. وقت بخیر

سوال : چطور امکان داره این برنامه کوتاه انجام بشه؟




#include <stdio.h>

Void main(void){

Char *a = “hadi”;

Char b;

b = a;

}




زبان C
چون نوع متغییر ها با هم فرق میکنه این کار انجام نمیشه
چیکار باید کرد؟

fjm11100
چهارشنبه 28 تیر 1391, 15:01 عصر
b = *a صحیح است

AbbasVB
چهارشنبه 28 تیر 1391, 16:22 عصر
b = *a صحیح است

سلام
دوست عزیز فکر نکنم این دستور درست باشه چون a آرایه ای از نوع char هست و b فقط یک متغییر.
(امید وارم درست گفته باشم چون الان سی ندارم)

rangine
چهارشنبه 28 تیر 1391, 16:50 عصر
ممنونم از توجهتون

ولی منظور منم همینه که چطور این امکان داره؟

که یک آرایه رو به یک متغییر رشته ای تبدیل کنم؟

AbbasVB
چهارشنبه 28 تیر 1391, 18:18 عصر
که یک آرایه رو به یک متغییر رشته ای تبدیل کنم؟
سلام
من سی زیاد کار نکردم اما فکر کنم شما باید از CString.h استفاده کنید برای کار با رشته ها .

مسعود اقدسی فام
چهارشنبه 28 تیر 1391, 18:45 عصر
ممنونم از توجهتون

ولی منظور منم همینه که چطور این امکان داره؟

که یک آرایه رو به یک متغییر رشته ای تبدیل کنم؟

از کلاس string در هدرفایل string از مجموعه کتابخانه‌ی STL استفاده کنید.

این پیوند رو مطالعه کنید:


http://www.cplusplus.com/reference/string/string/

fjm11100
چهارشنبه 28 تیر 1391, 20:10 عصر
شما همون کاری که گفتم را بکن بعد دستور
printf (&b) را بنویس و ببین که کلمه hadi نوشته میشه یا نه!!!

fjm11100
چهارشنبه 28 تیر 1391, 20:12 عصر
ضمنا در C خالی که شما نه نوع string داری نه کلاس string راهش اینه که با پوینتر و آرایه ای از char کار کنی.

rangine
پنج شنبه 29 تیر 1391, 00:57 صبح
امکان داره برای کار با pointer و char یک مثال بزنید؟؟

مثلا ریز کردن یک رشته ساده و ریختن اون تو خونه های یک آرایه

رشته: y=hadi:hoda

مثلا :

x= strtok(y,":");

#target
جمعه 30 تیر 1391, 00:52 صبح
char* X = "String" ;

char a[6] ;

a[0] = *X;
a[1] = *(X + 1);
a[2] = *(X + 2);
a[3] = 0;

char* Y = a; // Y = Str

char P = *X; // P = S

char* Z = (X + 3); // Z = ing

rangine
جمعه 30 تیر 1391, 12:31 عصر
ممنون از راهنماییتون

با این اوصاف کار کردن با یک رشته ساده تو زبان c مثل آپولو هوا کردن میمونه!!!

#target
جمعه 30 تیر 1391, 13:08 عصر
آره از ی سری لحاظ کار با رشته سخته .
ولی توابع کار با رشته وجود داره که کار رو راحت تر میکنه !

ی مثال :

char x[10];
#include <iostream.h>
void strtok(char* p , char S)
{
int i = 0;
while(*(p + i) != S)
{
x[i] = *(p + i);
i++;
}
}

int main()
{
strtok("Test:Trrrr" , ':');
cout << x;
}

rangine
جمعه 30 تیر 1391, 23:03 عصر
TARGET عزیز. واقعا ممنونم از وقتی که برای آموزش و راهنمایی امثال من صرف میکنی.

ابن کد رو میتونی یکم برام توضیح بدی؟

#target
شنبه 31 تیر 1391, 00:04 صبح
ی متغیر سراسری تعریف کردم که بعد از جداسازی رشته رو بذارم اونجا
بعدم تابع که پارامتر اول اشاره گر به رشته پارامتر دوم پارامتری که قراره اونو دید جدا کنه
تابع از جایی که اشاره گر هست یعنی ابتدای رشته ی بایت ی بایت میره جلو و هموون بایتو داخل آرایه میذاره تا وقتی اون بایت برابر با کاراکتر مورد نظر باشه که پایان بده کار رو

rangine
یک شنبه 01 مرداد 1391, 11:04 صبح
مرسی targete عزیز. ممنونم از راهنماییت. کاملا متوجه شدم