1、函数-strlen():
描述:strlen()函数是用来计算字符串长度的,直到空字符结束,不包含空字符。简单来说就是计算你输入的字母、空格、符号等。
格式:strlen(str)
参数:str是被计数的数组。
话不多说,代码一看就懂了:
#include<stdio.h> #include<string.h> //函数strlen是在string中的,所以此处要有头文件,编译器才能知道它的作用 int main() { char str[]={"I study hard"}; //定义任意字符串放到数组str中 int length; //计数后是整数类型,定义length来储存 length=strlen(str); //str是需要计数的字符串,直接放到strlen中进行计数,计数结果赋值给length printf("字符长度为:%d",length); return 0; }
2、函数-strcpy和strncpy:
描述:strcpy函数是用来拷贝字符串的。strncpy也是拷贝字符串的,只不过strncpy可以限制拷贝字符串的长度。
格式:strcpy(aim,str)
参数:aim是指向复制后的目标数组,str是被复制的数组。
话不多说,上代码:
#include<stdio.h> #include<string.h> int main() { char str[]={"I study hard"}; char length[100]; //定义一个新的字符数组,用来存储复制后的字符串 strcpy( length , str ); //直接将str中的字符串复制到length中 printf("复制后字符为:%s",length); // %s是字符串型的格式符 return 0; }
格式:strncpy(aim,str,n)
参数:aim,str同上, n是要打印的字符串长度。
代码为:
#include<stdio.h> #include<string.h> int main() { char str[]={"I study hard"}; char length[100]; strcpy(length,str,7); // n=7,结果将只会复制str数组的前7个,包括空格 length[7]='\0'; //手动加上终止符 printf("复制后字符为:%s",length); return 0; }
注意:1、当aim的长度大于str时,多余的将会用空字节填充。
2、strncpy需要手动加上终止符,不然有时会出问题。
3、函数-strcat和strncat:
描述:将字符串连接起来。
格式:strcat(aim,str)
参数:将str中的字符串连接在aim字符串的后面。
代码来了:
#include<stdio.h> #include<string.h> int main() { char aim[]={"I study "}; char str[]={"hard"}; strcat(aim,str); //将str中的字符串连接在aim的后面 printf("复制后字符为:%s",aim); return 0; }
格式:strncat(aim,str,n)
参数:aim,str,同上,而n是限制str中的字符拿多少连接在aim后面,不会改变aim的长度。
代码来了:
#include<stdio.h> #include<string.h> int main() { char aim[]={"I study "}; char str[]={"hard"}; strncat(aim,str,2); //n=2是将str中前两个字符连接在aim字符串的后面 printf("复制后字符为:%s",aim); return 0; }
4、函数-strcmp和strncmp:
描述:比较字符串,用来比较两个字符串的。
格式:strcmp(aim,str)
该函数返回值如下:
- 如果返回值小于 0,则表示 aim 小于 str。
- 如果返回值大于 0,则表示 aim 大于 str。
- 如果返回值等于 0,则表示 aim 等于 str。
代码来了:
#include<stdio.h> #include<string.h> int main() { char aim[]={"I study hard"}; char str[]={"I study hard"}; int retu; retu=strcmp(aim,str); //比较两者大小 //进行判断 if(retu<0){ printf("aim小于str"); } else if(retu==0){ printf("aim等于str"); } else{ printf("aim大于str"); } return 0; }
格式:strncmp(aim,str,n)
参数:n是比较两个字符串的前几个字符,起限制的作用。就拿每一个字符串的前n个字符进行比较。
该函数返回值如下:
- 如果返回值小于 0,则表示 aim 小于 str。
- 如果返回值大于 0,则表示 aim 大于 str。
- 如果返回值等于 0,则表示 aim 等于 str。
代码来了:
#include<stdio.h> #include<string.h> int main() { char aim[]={"I study hard"}; char str[]={"I study hard"}; int retu; retu=strncmp(aim,str,7); //分别拿aim和str前7个字符进行比较 if(retu<0){ printf("aim小于str"); } else if(retu==0){ printf("aim等于str"); } else{ printf("aim大于str"); } return 0; }