C++字符串转换为字符数组

C++ convert strings to char arrays

本文关键字:字符 数组 转换 字符串 C++      更新时间:2023-10-16

我想有 2 个字符串作为输入,这样我就可以使用 getline(cin,s)(这样我就可以选择整行直到 'n' ),然后我想搜索第二个数组,如果它包含第一个数组的单词而不使用 string::find()strstr() 。但是我仍然找不到将字符串转换为数组的方法

int main()
{
    string s;
    string s2;
    char array[50];
    char array2[50];
    cout<<"Give me the first word"<<endl;
    getline(cin,s);
    cout<<"Give me the text"<<endl;
    getline(cin.s2);
    array=s;
    array2=s2;
}

我思考的第二种方法是从一开始就使用数组来完成工作:

char array[50];
cin.getline(array,50);

但是如果我使用直数组,有什么方法可以像我们在字符串上一样找到数组的长度?

//example
string s;
int x;
getline(cin,s);
x=line.length();

只是不要这样做,因为你不需要这样做。

您可以使用 c_str() 函数将std::string转换为 char 数组,但在您的情况下,这是不必要的。对于查找元素的情况(我相信这是你需要的),您可以使用字符串的operator[]并将其视为普通数组。

您可以使用std::stringstrcpy函数c_str成员将数据复制到数组中:

//array=s;
strcpy(array, s.c_str());
//array2=s2;
strcpy(array2, s2.c_str());

但是,除非必须传递非常量char数组,否则您不必这样做,因为std::string的外观和感觉很像字符数组,只是它们更灵活。与字符数组不同,字符串将根据需要增长到适当的大小,提供安全搜索和操作的方法,等等。