字符串练习(1.统计字符串中字串的数量2.字符串逆序3.字符串替换)
来源:互联网 发布:文件夹 淘宝 编辑:程序博客网 时间:2024/05/03 05:23
#define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include<stdio.h>#include <string.h>/************************************************************************//* 函数:功能 统计str中sub出现的次数 *//* 参数:count 统计的次数 *//* 返回值 0代表成功 -1代表出错 *//************************************************************************/int getSubCount(const char *str,const char*sub,int *count){int ret = 0;const char *p1 = str;const char *p2 = sub;int muyycount =0;if (str==NULL||sub==NULL||count==NULL){ret = -1;return ret;}do {p1 = strstr(p1,sub);//若找到 返回sub首次出现在p1的位置if (p1!=NULL){muyycount++;p1 = p1 + strlen(p2);}else{break;}} while (*p1!='\0');*count = muyycount;return ret;}/************************************************************************//* 功能:逆序 把字符串str逆序存放到buf中 参数:*//************************************************************************/void inverseStr(const char *str,char *buf){const char *p = str;if (str ==NULL||buf==NULL){return ;}if (*p=='\0'){return;}inverseStr(p+1,buf);strncat(buf,p,1);}/************************************************************************//* 功能:将字符串str出现的字串src替换为字符串dst并存放到out中 *//************************************************************************/void strrpl(const char *str, char *out, const char *src, const char *dst) { char *p = str; int i =0;unsigned int len_s = strlen(src);unsigned int len_d = strlen(dst);// 这几段检查参数合法性 if((NULL == src) || (NULL == dst) || (NULL == str) || (NULL == out)) { return ; } if((strcmp(str, "") == 0) || (strcmp(src, "") == 0)) { return ; } while((*p != '\0')) { if(strncmp(p,src,len_s) != 0) { out[i] = *p; //一个字符一个字符的写入out中p++; i++;} else { int len_o = strlen(out);strcat_s(out,len_o+len_d+1,dst); //追加 第二个参数的意义 代表out整个缓冲区的长度p = p + len_s; i = i + len_d; } } } int main(){char *p = "ssabcdddfreeabcdefgqd1234abcdeabcdsfd";char *sub = "abcd";int num;int ret = 0;char buf[20]={0};char out[50]={0};char *dst = "hello";ret = getSubCount(p,sub,&num);if (ret!=0){printf("error\n");return -1;}printf("num:%d\n",num);inverseStr(sub,buf);printf("buf:%s",buf);strrpl(p, out,sub, dst);printf("out:%s\n",out);system("pause");return 0;}
0 0
- 字符串练习(1.统计字符串中字串的数量2.字符串逆序3.字符串替换)
- 统计文件中字符串数量
- 统计字符串中各个字符的数量
- c语言实现字符串字串的替换
- [C练习]字符串逆序
- 统计一个字符串中某个字串出现的次数
- 【Java】统计字符串中各字符数量
- 使用Python统计字符串中单词数量
- 字符串的统计字符串
- 字符串的统计字符串
- oj练习--字符串替换
- 如何统计vim中查找字符串的数量
- 字符串中数字,字母,空格等的数量统计
- 统计文件中的各个字符串的数量
- 字符串中替换第一次出现的字符串
- 字符串练习3,取两个字符串中最大相同的字串
- linux vi 统计字符串数量
- 取字符串的字串
- Request,Session,Cookie的比较
- 161006用户定义的函数
- 关于在js和jquery中bind的不同使用及手写实现Function.bind
- 千佛山
- Java CAS原理深度分析
- 字符串练习(1.统计字符串中字串的数量2.字符串逆序3.字符串替换)
- Error: Cannot find module '../build/Release/canvas'
- 剑指Offer面试题34(Java版):丑数
- 求逆元的一些方法总结
- 算法的时间复杂度
- php 类似百度搜索的分页
- 深入了解Spring
- Ubuntu问题集锦
- C语言中的static 详细分析