1、strlen
格式:变量名1=strlen(变量名2); //变量名1注意要先定义 int 变量名1;
#include#include int main(){ char a[8]; int len; printf("请输入一个字符串:"); gets(a); len = strlen(a); printf("字符串的长度为:%d\n", len); return 0;}
2、strcpy
格式:strcpy(a,b); //表示把b中的内容复制到a中去,第二个参数是源字符串
情况一:(复制前后均没有越界情况)
#include#include int main(){ char a[16]="China"; char b[16]="Chinese"; strcpy(a, b); printf("a=%s\n", a); printf("b=%s\n",b); return 0;}
情况二:(复制后发生越界,很危险)
#include#include int main(){ char a[8]="China"; char b[16]="Chinese people"; strcpy(a, b); printf("a=%s\n", a); printf("b=%s\n",b); return 0;}
情况三:(复制源比较短,复制源的字符串结束符也会复制过去)
#include#include int main(){ char a[16]="Chinese"; char b[16]="China"; strcpy(a, b); printf("a=%s\n", a); printf("b=%s\n",b); return 0;}
3、strncpy
能够有效防止越界的问题
格式:strncpy(a,b,n); //表示从b中复制n个字符到a中
情况一:(要拷贝的字符个数小于等于源字符串的长度)
#include#include int main(){ char a[8]="China"; char b[8]="abcde"; strncpy(a, b,3); printf("a=%s\n", a); printf("b=%s\n",b); return 0;}
情况二:(要拷贝的字符个数大于源字符串的长度:没有的用0补齐)
#include#include int main(){ char a[8]="China"; char b[8]="abc"; strncpy(a, b,5);//拷过去之后a=abc00 printf("a=%s\n", a);//由于是以字符串的形式打印,所以即使有数字也显示不出来 printf("b=%s\n",b); printf("a[3]=%d a[4]=%d\n", a[3], a[4]);//以整数的形式看是否能打印出来 return 0;}
4、strcat
格式:strcat(dest1,dest2); //表示把dest2的内容拼接到dest1后面去,dest2的内容从dest1的字符串结束符开始覆盖
#include#include int main(){ char pro[32]; char city[32]; printf("请输入您的省份:"); gets(pro); printf("请输入您的城市:"); gets(city); strcat(pro, city); printf("您所在地区为:%s\n", pro); printf("pro=%s\n", pro); printf("city=%s\n", city); return 0;}