日志15

字符串及字符数组 一、 C - style字符串(字符数组) 1.定义与初始化:C - style字符串是以空字符'\0'结尾的字符数组。例如,char str[6] = "Hello";,这里字符数组str的大小为6,因为除了存储"Hello"这5个字符外,还需要一个字节来存储空字符'\0'。也可以使用char str[] = "Hello";让编译器自动计算数组大小。 2.字符串操作: (1)复制字符串:可以使用strcpy函数(需要包含<string.h>头文件),如char dest[10]; strcpy(dest, "Hello");,将"Hello"复制到dest中,但要确保dest的空间足够大,否则会导致缓冲区溢出。 (2) 连接字符串:使用strcat函数,如char str1[20] = "Hello"; char str2[] = " World"; strcat(str1, str2);,将str2连接到str1后面,同样要注意目标字符串的空间是否足够。 (3)比较字符串:使用strcmp函数,它返回一个整数。如果两个字符串相等,返回0;如果第一个字符串小于第二个字符串,返回负数;如果第一个字符串大于第二个字符串,返回正数。例如,int result = strcmp("abc", "abd");,result为负数。 二、string类(C++标准库字符串) 1.定义与初始化:string是C++标准库中的字符串类,使用起来更加方便和安全。可以通过多种方式初始化 如string str1 = "Hello";,string str2("World");或string str3(str1);(复制构造)。 2.字符串操作: (1)连接字符串:可以使用+运算符或者append方法。 例如,string str1 = "Hello"; string str2 = " World"; string str3 = str1 + str2;或者str1.append(str2);。 (2)访问字符:可以使用[]运算符或者at方法访问字符串中的单个字符。 例如,string str = "Hello"; char ch1 = str[1]; char ch2 = str.at(1);,不过at方法会进行边界检查,如果下标越界会抛出异常,而[]运算符不会。 (3)获取长度:使用length或size方法,如string str = "Hello"; int len = str.length();。 (4)查找子字符串:使用find方法,如string str = "Hello World"; int pos = str.find("World");,如果找到子字符串,返回其在字符串中的起始位置(从0开始),如果没找到,返回string::npos。 (5)替换子字符串:使用replace方法,例如,string str = "Hello World"; str.replace(0, 5, "Hi");会将str中的"Hello"替换为"Hi"。 三、string字符串数组 1. 定义与声明 string字符串数组(C++标准库):使用string类定义字符串数组更方便。 例如,string stdStrArray[3] = {"apple", "banana", "cherry"};。 这种方式不需要考虑字符串长度的限制,因为string类会自动管理内存。 2. 访问和遍历 string字符串数组:可以使用双下标访问,如stdStrArray[1][3]访问第二个字符串的第四个字符。遍历也可以用类似的嵌套循环,不过string类有更方便的遍历方式,如使用范围 - based for循环: for (const auto& str : stdStrArray) { std::cout << str << std::endl; } 这里const auto& str表示以引用的方式遍历数组中的每个字符串,const表示在遍历过程中不会修改字符串,这样可以提高效率,避免不必要的复制。 3. 操作字符串数组中的元素 string字符串数组:可以使用string类提供的方法进行操作。 例如,要连接两个字符串,可以使用+运算符或者append方法。 如stdStrArray[0] = stdStrArray[0] + stdStrArray[1]; 或者stdStrArray[0].append(stdStrArray[1]); 同时,还可以对字符串数组进行排序等更复杂的操作, 例如,使用<algorithm>头文件中的sort函数对stdStrArray进行排序: sort(stdStrArray, stdStrArray + 3); (假设stdStrArray有3个元素)

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-07 12:28
沟头学院:终于体会到明星大佬为什么要偷税漏税了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务