PDA

View Full Version : تابع strcat()



JavadAmeri
یک شنبه 25 خرداد 1393, 19:28 عصر
می دونید که تابع strcat کار اتصال رشته ها رو انجام میده.ولی بدیش اینه که داخل ورودیش تابع نمیگیره.باید چیکار کنم؟:متفکر:
تابع تو در تو هستش






string m(int d)
{
...
strcat(m(d-5),"string")//error dare
...
}
//error:connot convert 'string'to'const char *' in function m()

m.b533
یک شنبه 25 خرداد 1393, 19:32 عصر
خوب یه کار کن
یه تابع بساز که خروجی اش همون رشته ای باشه که از strcat گرفتی

rahnema1
یک شنبه 25 خرداد 1393, 22:18 عصر
سلام
خروجی تابع strcat از نوع * char یا به عبارت دیگه [] char هست نه نوع string.
اگه می خواهید با string کار کنید این جور میشه

string a ="Hello";
string b ="World";
string c = a + b;

محمد فدوی
دوشنبه 26 خرداد 1393, 00:34 صبح
خروجی تابع strcat هم همون رشته ای هستش که ازتون گرفته...

char s1[30] = "Hello",
s2[30] = " World!";

// strcat return's s1:
std::cout << strcat(s1, s2);

JavadAmeri
دوشنبه 26 خرداد 1393, 12:47 عصر
الهی قربونتون برم .ممنون:قلب:

JavadAmeri
دوشنبه 26 خرداد 1393, 14:16 عصر
من می خوام توی رشته ای (مثلا "zxcxzxc" )به جای هرچی کاراکتر مثلا "X" هست رشته "abc" رو بذاره.تابعی هست؟

محمد فدوی
دوشنبه 26 خرداد 1393, 16:05 عصر
از این استفاده کن:

#include <string>
#include <sstream>


using namespace std;


string replaceAll(string& str, char ch, string& rep) {
stringstream ss;
char* it = (char*)str.c_str();


while(*it) {
if(*it == ch) {
ss << rep;
} else {
ss << *it;
}
it++;
}


return ss.str();
}


مثلا برای چیزی که خودت گفتی:

#include <iostream>


...


string str = "zxcxzxc";
string rep = "abc";


cout << replaceAll(str, 'x', rep);