PDA

View Full Version : strcat



amir_civil
یک شنبه 28 مرداد 1386, 00:16 صبح
سلام دوستان
در کد زیر اگر منغیر ما const نباشد چه کار باید بکنیم:عصبانی++:

char *strcat(
char *strDestination,
const char *strSource
);

ممنون

emad_67
یک شنبه 28 مرداد 1386, 00:23 صبح
مشکلی پیش نمیاد
منظور از اینکه متغیر دوم رو به صورت const ذکر میکنن اینه که اون متغیر در این تابع هیچ تغییری نمیکنه مثلا تو همین strcat فقط رشته دوم به اول متصل میشه و رشته اوله که تغیرات روش اعمال میشه
در کل به این معنی نیست که حتما باید متغیر const باشه تا بشه به تابع فرستادش

amir_civil
یک شنبه 28 مرداد 1386, 10:37 صبح
#include "stdafx.h"
#include "string.h"


int main(int argc, char* argv[])
{
char name[3]={'m','b','u'};
for(int r=0;r<=2;r++)
{
strcat("user",name[r]);
}
return 0;
}

emad_67
یک شنبه 28 مرداد 1386, 10:45 صبح
خوب این برنامه مشکلش اینه که:
توی این خط


strcat("user",name[r])

شما پارامتر دوم رو نوشتی name[r] که فقط یه کاراکتر رو به strcat میفرسته که غلطه چون strcat هم دو پارامترش رشته است
ضمنا شما پارامتر اول رو هم به صورت یه رشته ثابت تعریف کردی خوب طبیعی هست که نمیتونه رشته دوم رو به اول وصل کنه برای این کار باید رشته اول رو داخل یه آرایه بریزی که البته اون آرایه باید ظریف لازم برای پذیرفتن رشته ای هم که قراره بهش متصل بشه رو داشته باشه
اینجوری بنویس مشکلت حل میشه


void main()
{
char name[4]={'m','b','u','\0'};
char s[10]="user";

strcat(s,name);
cout<<s<<endl;
}