在本文中,您将学习如何在C中处理字符串。您将学习声明它们,对其进行初始化以及将它们用于各种输入/输出操作。
字符串是字符的集合。C ++编程语言中通常使用两种类型的字符串:
作为字符串类对象的字符串(标准C ++库字符串类)
C字符串(C风格的字符串)
在C编程中,字符集合以数组的形式存储,C ++编程也支持这种形式。因此,它称为C 风格字符串(C-string)。
c -string是以null字符结尾的char类型的数组,即\0 (null字符的ASCII值为0)。
char str[] = "C++";
在上面的代码中,str是一个字符串,它包含4个字符。
虽然“c++”有3个字符,但是null字符\0被自动添加到字符串的末尾。
char str[4] = "C++"; char str[] = {'C','+','+','\0'}; char str[4] = {'C','+','+','\0'};
与数组一样,不需要使用为字符串分配的所有空间。例如:
char str[100] = "C++";
C ++程序显示用户输入的字符串。
#include <iostream> using namespace std; int main() { char str[100]; cout << "输入字符串: "; cin >> str; cout << "您输入了: " << str << endl; cout << "\n输入另一个字符串: "; cin >> str; cout << "您输入了: "<<str<<endl; return 0; }
输出结果
输入字符串: C++ 您输入了: C++ 输入另一个字符串: Programming is fun. 您输入了: Programming
请注意,在第二个示例中,仅显示“Programming”,而不是“Programming is fun.”。
这是因为提取运算符>>与C语言中scanf()方法一样,认为空格“ ”具有终止字符。
C ++程序读取并显示用户输入的整行。
#include <iostream> using namespace std; int main() { char str[100]; cout << "输入一个字符串: "; cin.get(str, 100); cout << "您输入了: " << str << endl; return 0; }
输出结果
输入一个字符串: Programming is fun. 您输入了: Programming is fun.
要读取包含空格的文本,可以使用cin.get函数。该函数有两个参数。
第一个参数是字符串的名称(字符串的第一个元素的地址),第二个参数是数组的最大容量。
在上面的程序中,str是字符串的名称,100是数组的最大容量。
在C ++中,您还可以创建一个用于保存字符串的字符串对象。
与使用char数组不同,字符串对象没有固定的长度,可以根据需要进行扩展。
#include <iostream> using namespace std; int main() { //声明一个字符串对象 string str; cout << "输入字符串: "; getline(cin, str); cout << "您输入了: " << str << endl; return 0; }
输出结果
输入字符串: Programming is fun. 您输入了: Programming is fun.
在此程序中,str声明了一个字符串。然后从用户询问字符串。
除了使用cin>>或cin.get()函数外,还可以使用getline()来获取输入的文本行。
getline()函数将输入流作为第一个参数,cin和str作为要存储的行的位置。
字符串以类似的方式传递给函数,数组也可以传递给函数。
#include <iostream> using namespace std; void display(char *); void display(string); int main() { string str1; char str[100]; cout << "输入字符串: "; getline(cin, str1); cout << "输入另一个字符串: "; cin.get(str, 100, '\n'); display(str1); display(str); return 0; } void display(char s[]) { cout << "输入的字符数组为: " << s << endl; } void display(string s) { cout << "输入的字符串是: " << s << endl; }
输出结果
输入字符串: Programming is fun. 输入另一个字符串: Really? 输入的字符串是: Programming is fun. 输入的字符数组为: Really?
在上面的程序中,要求输入两个字符串。它们分别存储在str和str1中,其中str是一个char数组,而str1是一个string对象。
然后,我们有两个函数display(),它们将字符串输出到字符串中。
这两个函数之间的唯一区别是参数。第一个display()函数将char数组作为参数,而第二个函数将string作为参数。
此过程称为函数重载。了解有关函数重载的更多信息。