本文主要是介绍9、strchr函数strtok函数strdup使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题意: 将字符串abcddd#123#gaghah#345#fdsafa#345#中把#之间的数字串替换成对应的字母串
123===》defd
345===》fdse
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<cstring>
#include<string.h>
using namespace std;
int main()
{char *str="abcddd#123#gaghah#345#fdsafa#345#";char *token,*pch,*strps=NULL;int *arry;int i=0,j=0;arry=(int *)malloc(sizeof(int)*strlen(str));memset(arry,0,strlen(str));pch=strchr(str,'#'); //查找某个字符的位置 strstr 查找某个字符串的位置while(pch!=NULL) {if(i%2==0) {arry[j]=pch-str;j++;}i++;pch=strchr(pch+1,'#');}i=0;char *s;s=(char*)malloc(sizeof(char)*strlen(str));char *st=strdup(str);token=strtok(st,"#"); //字符串分割 但是 一般使用strtok_r 保证线程安全while(token!=NULL) {if(token-st-1==arry[i]){strcat(s,token);//此处需要replace 函数 此代码暂不做处理 只做讲解i=i+2;} else {strcat(s,token);}token=strtok(NULL,"#");}cout<<s<<endl;return 0;
}
这篇关于9、strchr函数strtok函数strdup使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!