C语言中字符串的基本操作
用惯了c#和JavaScript,反过头来再学习c语言的字符串操作,真是操碎了心。
这大概是高级语言和低级语言的区别吧。
连接字符串
strcat(s1, s2);
复制字符串
#include
#include
int main()
{
char stra[] = "abcd";
char strb[] = "hjklmpei";
printf("stra: %s\t&stra:%d \n", stra, &stra);
printf("strb: %s\t &strb:%d \n", strb, &strb);
printf("-------\n");
strcpy(stra, strb);
printf("stra: %s\t&stra:%d \n", stra, &stra);
printf("strb: %s\t &strb:%d \n", strb, &strb);
}
运行结果:
stra: abcd &stra:6422315
strb: hjklmpei &strb:6422306
-------
stra: hjklmpei &stra:6422315
strb: hjklmpei &strb:6422306
strcpy(p, p1) 复制字符串
strncpy(p, p1, n) 复制指定长度字符串 复制字符串的变种,从
截取字符串
截取字符串可以看作是复制字符串的变种,指定了起始位置m和截取长度n
strncpy(stra, strb+m ,n);//起始位置m和截取长度n,还要判断m、n是否越界
stra[n]=0;//给数组结尾加个NULL,否则数组可能没有结束标记
查找字符串
char strb[] = "hjklmpei";
printf("strb: %s\t &strb:%#X \n", strb, &strb);
printf("-------\n");
char *p=strstr(strb,"jk");
printf("p: %#p",p);
//运行结果
strb: hjklmpei &strb:0X61FF21
-------
p: 0X0061FF22
strstr()是查找字符串的位置,strchr()是查找字符的位置,函数名比较相近。
字符串长度
strlen()
字符串中大小写转换
#include
#include
#include
int main()
{
char stra[] = "a";
char strb[] = "hjklmpei";
printf("stra: %s\t&stra:%#X \n", stra, &stra);
printf("strb: %s\t &strb:%#X \n", strb, &strb);
printf("-------\n");
for(int i=0;i<strlen(strb);i++){
strb[i]=toupper(strb[i]);//利用c封装的字符大小写转换函数toupper/tolower
}
//printf("stra: %s\t &stra:%d \n", stra, &stra);
printf("strb: %s\t &strb:%#X \n", strb, &strb);
}
字符串是否相等
strcmp(s1, s2);