PDA

View Full Version : مبتدی: copy string to char



mohamnt
پنج شنبه 10 تیر 1389, 12:32 عصر
میشه یک string رو توی یک رشته کاراکتری کپی کرد ؟

Salar Ashgi
پنج شنبه 10 تیر 1389, 13:48 عصر
عملا و منطقا اینکار ممکن نیست ، چراکه رشته آرایه ای از کاراکترهاست و نمیشه اونو داخل char که فقط یک

کاراکتره ، کپی کرد . مگر اینکه منظورتون تبدیل string به [] char باشه .

منظورتون رو واضحتر مطرح کنید .

mohamnt
پنج شنبه 10 تیر 1389, 14:34 عصر
عملا و منطقا اینکار ممکن نیست ، چراکه رشته آرایه ای از کاراکترهاست و نمیشه اونو داخل char که فقط یک

کاراکتره ، کپی کرد . مگر اینکه منظورتون تبدیل string به [] char باشه .

منظورتون رو واضحتر مطرح کنید .

می خوام string رو بریزم توی char[] یعنی در اصل از توی فایل اطلاعات میره توی یک string ولی توی برنامه یک جا نیاز به این پیدا کردم که هر string به یه char[] بره ولی نمی دونم چطور باید این کار رو کرد :متفکر:

tdkhakpur
پنج شنبه 10 تیر 1389, 14:47 عصر
مثال


String str="hi, it is test.";
char buf[128];
strcpy(buf, str.c_str());

Salar Ashgi
پنج شنبه 10 تیر 1389, 17:13 عصر
بروش دستی :



#include <iostream>
#include <conio>
#include <string>
using namespace std;
int main(){
string str = "This is a test";
int len = str.size();
char *a = new char[len];
for(int i=0;i<len;i++)
a[i] = str[i];
cout<<a<<endl;
getch();
}

mohamnt
پنج شنبه 10 تیر 1389, 18:24 عصر
:گریه: من متوجه نشدم باید چطوری عمل کنم چون با کاراکتر رشته ای مشکل دارم

void info::cinfo()
{
system("clear");
cout<<"enter your Customer Number for search :";
string s,numfs ;
int j=0;
cin>>numfs;
ifstream Myfile("list.txt");
system("clear");
if( Myfile.is_open() )
{
while(!Myfile.eof())
{
for( int i = 0; i <5; i++)
{
getline( Myfile, s );
if( j==2) // سرچ‌بین‌خطوط‌2‌و‌7و‌12‌ .........
{
if(numfs==s)//‌اگر‌‌‌ ورودی ما با مقدار برابر باشه
// اینجا پنج رشته ای که خونده شده رو نمایش بده
}


}
}
}
}

:متفکر:
چطور باید ورودی که به s فرستاده میشه رو به ترتیب به x[1] ,x[2] .... بفرستم