我是靠谱客的博主 平常店员,最近开发中收集的这篇文章主要介绍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使用的全部内容,希望文章能够帮你解决9、strchr函数&strtok函数&strdup使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部