字符串操作常用函数二
知识点
1. 拷贝复制 strcpy stmcpy
格式;char strcpy(char dest,const char *src);
char strdest[128] = {'\0'};
char *strsrc = "老K,嵌入式";
strcpy(strdest,strsrc);
printf("复制字符串完毕,%s\n",strdest);
运行结果;
老知识新用;
用memset函数,
memset(strdest,'\0',sizeof(strdest)/sizeof(strdest[0]));
//printf("%d",sizeof(strdest)/sizeof(strdest[0]));
strcpy(strdest,"老 K");
puts(strdest);
运行结果;
第三种玩法;
strncpy 注意;中间多一个n!
char strcpy(char desinin, char *source,int maxlen);
注意;找出跟上面不同的点。
memset(strdest,'\0',sizeof(strdest)/sizeof(strdest[0]));
//printf("%d",sizeof(strdest)/sizeof(strdest[0]));
strncpy(strdest,"老,bcd",2); // char *strcpy(char* desinin, char *source,int maxlen);
puts(strdest);
运行结果;
哦,还有一点 ,中文在系统中占两个字节。
2.拼接 strcat
char test[123] = "LAO K LAO K";
strcat(test,strsrc);
puts(test);
运行结果;
拼接成功。
3.比较 strcmp
格式;int strcmp(const char *s1,const char *s2);
char *str1 = "123"; //ASCII码 的和
char *str2 = "123";
int ret = strcmp(str2,str1); // int strcmp(const char *s1,const char *s2);
printf("ret = %d\n",ret);
// 1.
//if(ret == 0){
// printf("两个字符串一样\n");
// }
// 2.
if(strcmp(str2,str1)==0){
printf("两个字符串一样\n");
}
注意;数组之和是ASCII码 的和、
运行结果;
全部代码
#include <stdio.h>
#include <stdlib.h>
int main()
{ //1. 拷贝复制 strcpy stmcpy
// char *strcpy(char* dest,const char *src);
char strdest[128] = {'\0'};
char *strsrc = "老K,嵌入式";
strcpy(strdest,strsrc);
printf("复制字符串完毕,%s\n",strdest);
printf("\n=================\n");
memset(strdest,'\0',sizeof(strdest)/sizeof(strdest[0]));
//printf("%d",sizeof(strdest)/sizeof(strdest[0]));
strcpy(strdest,"老 K");
puts(strdest);
printf("\n==================\n");
memset(strdest,'\0',sizeof(strdest)/sizeof(strdest[0]));
//printf("%d",sizeof(strdest)/sizeof(strdest[0]));
strncpy(strdest,"老,bcd",2); // char *strcpy(char* desinin, char *source,int maxlen);
puts(strdest);
printf("\n==================\n");
// 拼接 strcat
char test[123] = "LAO K LAO K";
strcat(test,strsrc);
puts(test);
printf("\n==================\n");
// 比较 strcmp
char *str1 = "123"; //ASCII码 的和
char *str2 = "123";
int ret = strcmp(str2,str1); // int strcmp(const char *s1,const char *s2);
printf("ret = %d\n",ret);
// 1.
//if(ret == 0){
// printf("两个字符串一样\n");
// }
// 2.
if(strcmp(str2,str1)==0){
printf("两个字符串一样\n");
}
system("pause");
return 0;
}