C语言中常用的字符串操作函数
strcpy(s1, s2);
复制字符串 s2 到字符串 s1。
strcat(s1, s2);
连接字符串 s2 到字符串 s1 的末尾。
strlen(s1);
返回字符串 s1 的长度。
strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。
strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
strlwr(s1);
返回原字符串的小写形式。
strupr(s1);
返回原字符串的大写形式。
示例代码:
1 #include <stdio.h> 2 #include <string.h> 3 4 int main () 5 { 6 char str1[12] = "Hello"; 7 char str2[12] = "World"; 8 char str3[12]; 9 int len; 10 int size; 11 12 /* 复制str1到str3 */ 13 strcpy(str3, str1); 14 printf("strcpy(str3, str1): %s\n", str3 ); 15 16 /* 比较str1和st2 */ 17 printf("strcmp(str1, str2):%d\n", strcmp(str1, str2)); 18 19 /* 比较str1和st3 */ 20 printf("strcmp(str1, str3):%d\n", strcmp(str1, str3)); 21 22 /* 连接str1和str2 */ 23 strcat(str1, str2); 24 printf("strcat(str1, str2): %s\n", str1 ); 25 26 /* 连接后,str1的总长度 */ 27 len = strlen(str1); 28 printf("strlen(str1): %d\n", len ); 29 size = sizeof(str1); 30 printf("sizeof(str1): %d\n", size ); 31 32 printf("str1中的所有字符=========================\n"); 33 34 /* 输出str1中的所有字符 */ 35 for (int i = 0; i < size; i++) { 36 printf("%c,", str1[i] ); 37 } 38 printf("\n"); 39 40 printf("str3中的所有字符=========================\n"); 41 42 /* 输出str3中的所有字符 */ 43 for (int i = 0; i < sizeof(str3); i++) { 44 printf("%c,", str3[i] ); 45 } 46 printf("\n"); 47 48 printf("str2中的所有字符=========================\n"); 49 50 /* 输出str2中的所有字符 */ 51 for (int i = 0; i < sizeof(str2); i++) { 52 printf("%c,", str2[i] ); 53 } 54 printf("\n"); 55 56 printf("=========================\n"); 57 58 /* 输出 W 和 Wor*/ 59 printf("str1[5]在str1的地址:%08X\n", &str1[5]); 60 printf("W在str1的地址:%p\n", strchr(str1, 'W')); 61 printf("Wor在str1的地址:%p\n", strstr(str1, "Wor")); 62 63 /* 输出 W所在地址对应的内容 */ 64 printf("W在str1的地址的内容:%c\n", *(strchr(str1, 'W'))); 65 66 /* 将str1转换为全大写 */ 67 printf("将str1转换为全大写:%s\n", strupr(str1)); 68 /* 将str1转换为全小写 */ 69 printf("将str1转换为全大写:%s\n", strlwr(str1)); 70 71 return 0; 72 73 }
运行结果:

源代码出自:http://www.runoob.com/cprogramming/c-strings.html,有修改。

浙公网安备 33010602011771号