str 系列字符串操作函数主要包括 strlen、strcpy、strcmp、strcat 等。strlen 函数用于统计字符串长度,strcpy 函数用于将某个字符串复制到字符数组中,strcmp 函数用于比较两个字符串的大小,strcat 函数用于将两个字符串连接到一起。各个函数的具体格式如下所示:
1 #include <string.h> 2 size_t strlen(char *str); 3 char *strcpy(char *to, const char *from); 4 int strcmp(const char *str1, const char *str2); 5 char *strcat(char *str1, const char *str2);
对于传参类型 char*,直接放入字符数组的数组名即可。
例子:str系列字符串操作函数的使用
1 #include <stdio.h> 2 #include <string.h> 3 int mystrlen(char c[]) { 4 int i = 0; 5 while (c[i++]); 6 return i - 1;} 7 //strlen 统计字符串长度 8 int main() { 9 int len; //用于存储字符串长度 10 char c[20]; 11 char d[100] = "world"; 12 gets(c); 13 puts(c); 14 len = strlen(c); 15 printf("len=%d\n", len); 16 len = mystrlen(c); 17 printf("mystrlen len=%d\n", len); 18 strcat(c, d); 19 strcpy(d, c); //c 中的字符串复制给 d 20 puts(d); 21 printf("c?d %d\n", strcmp(c, d)); 22 puts(c); 23 return 0; 24 } 25 26 //执行后的结果 27 hello 28 hello 29 len=5 30 mystrlen len=5 31 helloworld 32 c?d 0 33 helloworld
输入"hello"后的执行结果,通过 strlen 函数计算的字符串长度为5,我们自己写的函数就是 strlen 函数的计算原理,即通过判断结束符来确定字符串的长度。
strcpy 函数用来将字符串中的字符逐个地赋值给目标字符数组。例中我们将c 复制给d,就是将 c 中的每个字符依次赋值给 d,也会将结束符赋值给 d。注意,目标数组一定要大于字符串大小,即 sizeof(d)>strlen(c),否则会造成访问越界。
strcmp 函数用来比较两个字符串的大小,由于字符数组 c 中的字符串与d 相等,所以这里的返回值为 0。如果 c 中的字符串大于 d,那么返回值为 1;如果 c 中的字符串小于d,那么返回值为−1。如何比较两个字符串的大小呢?具体操作是从头开始,比较相同位置字符的ASCII 码值,若发现不相等则直接返回,否则接着往后比较。例如,strcmp("hello","how")的返回值是−1,即"hello"小于"how",因为第一个字符 h 相等,接着比较第二个位置的字符,e 的ASCII 码值小于 o 的,然后返回−1。
strcat 函数用来将一个字符串接到另外一个字符串的末尾。例中字符数组c 中存储的是"hello",我们将 d 中的"world"与 c 拼接,最终结果为"helloworld"。注意,目标数组必须大于拼接后的字符串大小,即 sizeof(c)>strlen(“helloworld”)。
标签:字符,函数,len,char,str,字符串,strlen From: https://www.cnblogs.com/6290-6/p/17954972