通过指针对字符串进行查询并且替换其中的指定字符
2014-04-20 01:08
465 查看
#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"); }
相关文章推荐
- 通过读取硬盘中的文档,来统计该文档中指定字符的个数,并对指定字符进行替换
- 无法通过json传递字符串在sqlite3中进行汉字字符插入和查询
- java中用正则表达式获取一个指定的子字符在字符串中出现的指定次数的下标索引,并且进行字符串分割
- C#中查询字符串中是否包含指定字符/字符串,使用IndexOf还是Contains?
- 项目--js中替换目标字符串指定的所有字符
- 将字符串中指定字符替换成其他不同字符
- 用变量替换指定的字符串,sed: -e 表达式 #1, 字符 29: “s”的未知选项
- 截取指定的字符长度(其中字符串中有中文,如果有半个中文则去掉)
- 利用替换字符串的函数StringReplace删除字符串中指定的字符或字符串
- 1、读取一个文件,并替换其中指定的字符串为特定字符串
- Excel 此文档中包含宏、ActiveX 控件、XML扩展包信息或 Web组件,其中可能包含个人信息,并且这些信息不能通过‘文档检查器’进行删除。”
- js replace(a,b)之替换字符串中所有指定字符的方法
- 编写一个能根据指定字符对字符串进行拆分的方法
- 今天学到的几个替换字符串中指定字符方法。
- Oracle中通过substr和instr实现截取指定字符之间的字符串:
- sas9正则表达式测试(对字符串进行字符替换)
- Oracle中通过substr和instr实现截取指定字符之间的字符串:
- C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?
- mysql查询按照指定字符串进行排序
- 用 Replace 函数对字符串内某些字符进行替换