c语言如何将一个字符串里某些字符代替另外一个字符串来
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何将一个字符串里某些字符代替另外一个字符串来相关的知识,希望对你有一定的参考价值。
例如字符串”abc1234567890efg“中1234567890用另外一个字符串“0123456789”里替换
几天前回答过一样的问题,数字也可以的,我测试过了。长度不同也可以。#include <stdio.h>
#include <string.h>
main()
char string[300],change[50],replace[50];
char s[300];
char *p,*q;
int i,lengthch,lengthre,flag,j=0;
printf("Input a string:");
gets(string);
printf("Input the string you want to be changed:");
scanf("%s",change);
printf("Input the string you want to replace:");
scanf("%s",replace);
lengthch=strlen(change);
lengthre=strlen(replace);
puts(string);
p=q=string;
for(;*p;p++)
if(*p==change[0])
flag=1;
q=p;
for(i=0;i<lengthch;i++)
if(*q!=change[i])
flag=0;
break;
else q++;
if(flag==1)
for(i=0;i<lengthre;i++)
s[j++]=replace[i];
p=q-1;
else s[j++]=*p;
s[j]='\0';
puts(s);
参考资料:http://zhidao.baidu.com/question/406414478.html?oldq=1
参考技术A 用char *strstr(const char *str, const char *strSearch ); 函数找到源字符串中,你要替换的字符串。该函数返回要替换的字符串的指针。然后将替换的字符串赋值给该指针的位置。 参考技术B 替换和被替换的字符串长度相等?代码:#include <stdio.h>
#include <string.h>
int main()
char data[] = "abc1234567890efg";
char *from = "1234567890";
char *to = "0123456789";
char *p = strstr(data, from);
if(p)
memcpy(p, to, strlen(to));
printf("%s\n", data);
return 0;
追问
是的,两个字符串长度相等
追答那这样就可以了。
C怎么逐个读取一个字符串数组里的数据
逐个读取字符串数组里的数据,并判断其类型,入数字等
代码如下:
if(NULL != pStr)
int nNum = 1;
while('\\0' != *pStr)
if(*pStr >= '0' && *pStr <= '9')
cout<<"字符串第"<<nNum++<<"位上的字符是0-9:"<<*pStr-'0'<<endl;
else if((*pStr >= 'a' && *pStr <= 'z') || (*pStr >= 'A' && *pStr <= 'Z'))
cout<<"字符串第"<<nNum++<<"位上的字符是A-Z:"<<*pStr<<endl;
else
cout<<"字符串第"<<nNum++<<"位上的字符是其他字符!"<<endl;
pStr++;
return 1;
return 0;
参考技术A #include<stdio.h>
int main()
int i;
char s[2][8]="stra","swasss",*p,*q;
for(p=s[0];*p;p++)
printf("%c ",*p);
for(i=0;i<2;i++)
printf("\n%s",s+i);
printf("\n");
puts(s[0]);
puts(s[1]);
return 0;
参考技术B 当成数组 s8String[s32index]
以上是关于c语言如何将一个字符串里某些字符代替另外一个字符串来的主要内容,如果未能解决你的问题,请参考以下文章