#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //有一个字符串符合以下特征(” "abcd11111abcd2222abcdqqqqq"”), 要求写一个函数(接口),输出以下结果 //求字符串字串(“abcd”)出现的次数,并把结果传出; //把字符串替换成(dcba11111dcba 2222dcbaqqqqq),并把结果传出。 // //出现的次数 //转换后的数组进行输出 //int getRestbuf(const char*buf1, int buflen, int *count, char *buf2); int getRestbuf(const char*buf1, int buflen, int *count, char *buf2) { int i=0; int zcount = 0; char *p1 = buf1; char *psub = "abcd"; char buf[] = "dcba"; //这里返回出现的次数 //while((p1 = strstr(buf1//这里应该是你接过去的那个东东/, psub)) != NULL) while (p1=strstr(p1,psub)) { zcount++; //每次找到的时候就把字符串替换成"dcba"或者让字符串对应位置对调 //这里选择的是赋值 for (i = 0; i < strlen(psub); i++) { *(p1 + i) = buf[i]; } p1 = p1 + strlen(psub); if (*p1 == ‘\0‘) { break; } //printf("%d", p1); } strcpy(buf2, buf1); *count = zcount; return 0; } void main() { int count = 0; char buf1[] = "abcd11111abcd2222abcdqqqqq"; int buflen = strlen(buf1); char buf2[100]; getRestbuf(buf1, buflen, &count, buf2); printf("找到字串的个数是%d\n", count); printf("原来的字符串是:%s\n", buf1); printf("更换后的字符串是"); printf("%s\n", buf2); system("pause"); }
通过指针对字符串进行查询并且替换其中的指定字符,布布扣,bubuko.com
原文:http://blog.csdn.net/han1558249222/article/details/24153291