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);
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.