C++字符串转换为字符数组
C++ convert strings to char arrays
我想有 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::string
和strcpy
函数c_str
成员将数据复制到数组中:
//array=s;
strcpy(array, s.c_str());
//array2=s2;
strcpy(array2, s2.c_str());
但是,除非必须传递非常量char
数组,否则您不必这样做,因为std::string
的外观和感觉很像字符数组,只是它们更灵活。与字符数组不同,字符串将根据需要增长到适当的大小,提供安全搜索和操作的方法,等等。
相关文章:
- 指向指向字符数组的指针数组的指针
- 比较字符数组
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 使用无符号字符数组有效存储内存
- 错误:字符数组的初始值设定项太多
- 对字符数组中的元素执行逐位操作
- C++ 无法在字符数组中使用 for 循环打印字母模式
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- C++ 传递二维字符数组
- 无法在 C++ 中输入字符数组
- 字符数组中的元素数
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 使用字符数组作为 Map 中的键
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 按顺序声明的字符数组重叠
- 在 C++ 中字符串的大小与字符数组的大小
- 寻找一种更好的方法来表示无符号字符数组
- 如何打印 2D 字符数组C++
- 从字符数组的元素中减去'a'是什么意思
- 我是否不正确地集中了这些字符数组?