View Full Version : ترکیب رشته ها
m4hd1r
جمعه 06 مرداد 1391, 17:48 عصر
سلام
من 3 روزه سی + + رو شروع کردم به نظرم جذابه ولی یک مشکل دارم که هنوز راه حلشو نفهمیدم
قبلا با ویزوال بیسیک برنامه نوشتم نه خیلی پیشرفته ولی طبق دانسته های قبلیم باید بینهایت ساده باشه ولی نمیدونم چرا نمیشه ؟!!؟؟
تو ویزوال بیسیک برای ترکیب دو تا رشته میومدیم مینوشتیم
x = "a" & "b"
ولی تو سی ++ هرکاری میکنم نمیتونم دوتا رشته رو با هم ترکیب کنم از + و & هم استفاده کردم
چیزی که معلومه + واسه کارای ریاضیه و & هم که اونجوری که فهمیدم از عملگرهای شرطیه سی ++ هستش
#target
جمعه 06 مرداد 1391, 18:45 عصر
در C رشته ها تفاوت داره کار باهاشون
برای چسباندن میتونید از تابع strcat استفاده کنید
#include <string.h>
strcat (a, "String 2");
برای اینکه بتونید با + دو رشته رو ترکیب کنید باید از کلاس و نوع داده string استفاده کنید
#include <string>
string x;
x = "a" + "b";
m4hd1r
جمعه 06 مرداد 1391, 18:51 عصر
تشکر ولی یه سوال
مشخصات a چی باید باشه (از چه نوع داده ای باید باشه) ؟
درضمن از استرینگ هم استفاده میکنم نمیتونم + رو به کار ببرم
m4hd1r
جمعه 06 مرداد 1391, 18:59 عصر
عکس رو ببینید لطفا
http://mahdi3d.persiangig.com/cpp.JPG
ببخشید متغیر رو با استرینگ تعریف نکردم ولی وقتی هم تعریف میکنم همین مشکله
#target
جمعه 06 مرداد 1391, 20:26 عصر
سلام . باید تعریف هم کامل انجام بدید ( احتمال داره نوع داده رو نیاز باشه بصورت std::string تعریف کنید که با نوشتن using namespace std; نیاز نیست )
اینطور میتونید >
#include <string>
#include <iostream>
using namespace std;
int main()
{
string x;
x = "Str1";
x = x + "Str2";
cout << x;
}
ی نمونه هم با strcat
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
char str[10];
strcpy (str,"Str1");
strcat (str,"Str2");
cout << str;
}
m4hd1r
جمعه 06 مرداد 1391, 22:14 عصر
مدل غیر کنسولیشو میگید لطفا
im no0b !!!!
zahmatkesh8519
جمعه 06 مرداد 1391, 23:07 عصر
string x;
x = L"Str1";
x = x + L"Str2";
MessageBox(_T(x));
m4hd1r
جمعه 06 مرداد 1391, 23:43 عصر
در اون حالت غیر کنسولی چی کار باید بکنم که string رو بشناسه؟
این #include <string.h> رو هم وارد کردم
#target
یک شنبه 08 مرداد 1391, 04:09 صبح
از نوع داده std::string استفاده کنید
#include <string>
std::string a ;
اگر نمیخوای هر باز قبل از String اون std:: رو اضافه کنی بعد از تعریف include خط زیر رو وارد کن
using namespace std;
m4hd1r
یک شنبه 08 مرداد 1391, 17:03 عصر
دستون درد نکنه
معنی L در
L"txt"
چیه؟
#target
یک شنبه 08 مرداد 1391, 18:12 عصر
L کاراکتر های رشته رو از نوع WideChar در نظر میگیره . اگه برنامه رو در حالت WideChar کامپایل کنید باید برای فراخوانی توابع API رشته ها رو از این نوع بدید (مگه اینکه مستقیما از نسخهASCI توابع استفاده کنید ) . کاراکتر های WideChar دو بایتی هستن ( UTF-16 )
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.