1、编程实现strcpy()函数的功能
创新互联是专业的冷水滩网站建设公司,冷水滩接单;提供做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行冷水滩网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
(1)方法一:
#includeint main(void){ char str1[80] = "abcdefg"; char str2[80]; int i; for(i = 0; str1[i]; i++){ str2[i] = str1[i]; } str2[i] = 0; printf("%s\n", str1); printf("%s\n", str2); return 0; }
(2)、方法二:一行核心代码实现字符串复制
#includeint str_copy(char *str1, char *str2); int str_copy(char *str1, char *str2){ /* for(; *str1; str1++, str2++){ *str2 = *str1; } *str2 = 0; } for(; *str1; ){ *str2++ = *str1++; } *str2 = 0; while((*str2 = *str1) != 0){ str1++; //此时,就不用出循环在赋指为0; str2++; } while((*str2++ = *str1++) != 0); */ if(str1 == NULL || str2 == NULL){ return -1; } while(*str2++ = *str1++); return 0; int main(void){ char str1[80] = "abcdefg"; char str2[80]; //char *str2 = NULL; int ret = 0; ret = str_copy(str1, str2); if(ret != 0){ printf("有一个地址为空,所以有错\n"); }else{ printf("%s\n", str1); printf("%s\n", str2); } return 0; }
运行结果:
2、求子串出现在字符串中的次数
代码如下:
#include#include void strstrCount(char *p, char *q, int *count); void strstrCount(char *p, char *q, int *count){ int c = 0; if(p == NULL || q == NULL){ printf("有地址为空,不能查找子串个数\n"); return; } while(p = strstr(p, q)){ c++; p = p + strlen(q); if(p == NULL){ break; } } *count = c; } int main(void){ char *p = "abc12421abc34345abc325423abc"; char *q = "abc"; int count = 0; strstrCount(p, q, &count); printf("%d\n", count); return 0; }
运行结果:
3、去掉字符串的前后空格
代码如下:
#include#include #include void trimSpace(char **str1, char *str2); void trimSpace(char **str1, char *str2){ int length = strlen(str2); char *tmp; *str1 = (char *)malloc(sizeof(char)*length); tmp = *str1; for(; *str2; str2++){ if(*str2 != ' '){ *tmp++ = *str2; } } *tmp = 0; } int main(void){ char str[] = " abcdefg "; char *str1; printf("%s\n", str); trimSpace(&str1, str); printf("%s\n", str1); }
运行结果: