c语言替换
① 在 c语言中字符串的替换如何实现的!
1、首先输入代码:
#include <string.h>
#include <stdio.h>
/**
* 参数:
* originalString[] :原始字符串
* key[] : 待替换的字符串
* swap[] : 新字符串
*/
void replace(char originalString[], char key[], char swap[]){
int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;
char tmp[1000];
② c语言运用函数替换字符串中的数字求助大佬
#include <stdio.h>
#define N 80
/* 请在这里填写答案 */
void f(char *c,char a)
{
for(;*c;c++)
if(*c>='0'&&*c<='9')
*c=a;
}
int main(void)
{
char c[N], a;
gets(c);
scanf("%c", &a);
f(c, a);
printf("%s", c);
return 0;
}
③ c语言 把某一字符串中的其中一段字符串替换成另一串字符串。
#include
<stdio.h>
#include
<string.h>
void
main(void)
{
char
getstr[100];
char
sendstr[100];
char
a_b[100];
char
i;
printf("please
input
the
firs
str!\n");
gets(getstr);
printf("please
input
the
second
str
!\n");
gets(sendstr);
strcpy(a_b,getstr);
//交换两个字符串的数据
strcpy(getstr,sendstr);
strcpy(sendstr,a_b);
for(i
=
0;
getstr
!=
'\0';
i++)
{
printf("str1:%c",getstr[i]);
}
for(i
=
0;
getstr
!=
'\0';
i++)
{
printf("str2:%c",sendstr[i]);
}
}
这是将两个字符串进行交换后输出。
第二个问题则用到了数据结构了,使用一个结构体链表,使用strcmp()或strcmpi()比对你输入的字符串,找到相同的输出对应的中文字符串就好了。
其中:
strcmp()
对两个字符串进行大小写敏感的比较;strcmpi()
对两个字符串进行大小写不敏感的比较;
④ c语言中的文件替换函数
char
file[20]="
C:\a.txt
c:\b.txt";
system(file);
这是最简单的办法。当然你也可以写打开源文件,再打开目标文件,读源文件内容,写目标文件....
⑤ C语言如何实现字符之间的替换(打出一列顺序,输出按此顺序输出)
根据你的题意。
第一行输入是26个字母的指定顺序。
第二行输入是内容字符串。
将内容字符串中的字母按照指定顺序替换成对应26个字母原顺序的字母。
规则:第一行输入必须是26个小写母,且不能重复。
替换后的字符中字母大小写参照原字符串。
下面是代码:
#include<stdio.h>
#include<string.h>
#define MAXLEN 100//第二行输入字符串的最大长度
char *inPutNewOrder();//输入26个字母的新顺序,必须为小写字母,不能有重复。输入成功返回字符串,失败返回NULL
char getNewLetter(char cIn,char newOrder[27]);//获取字母对应newOrder的原始字母,成功返回字母,失败返回0
int main()
{
int i;
char *newOrder;//输入新字母顺序
char inputStr[MAXLEN],cIn;
while(1)
{
newOrder=NULL;
while(!newOrder)
newOrder=inPutNewOrder();
memset(inputStr,0,sizeof(char)*MAXLEN);
for(i=0;i<MAXLEN;i++)
{
cIn=getchar();
if(cIn==10)//回车结束输入
break;
if((cIn>=65 && cIn<=90)||(cIn>=97 && cIn<=122))//如输入的是字母,对应新字母顺序,找到原字母
inputStr[i]=getNewLetter(cIn,newOrder);
else
inputStr[i]=cIn;
}
if(i==MAXLEN)
while ((cIn = getchar()) != EOF && cIn != ' ');
printf("%s ",inputStr);
}
return 0;
}
char *inPutNewOrder()//输入26个字母的新顺序,必须为小写字母,不能有重复
{
int i=0,j,flag=1;
static char newOrder[27];
char c=0;
memset(newOrder,0,sizeof(char)*27);
while(1)
{
if(newOrder[25]!=0)
break;
c=getchar();
if(c<97 || c>122)//输入小写字母以外字符,标识错误
flag=0;
for(j=0;flag && j<i;j++)
if(newOrder[j]==c)//输入重复,标识错误
flag=0;
if(!flag)//错误,终止输入
{
printf("输入格式错误!必须为26个小写字母,且不能有重复,请重新输入。 ");
while ((c = getchar()) != EOF && c != ' ');
return NULL;
}
newOrder[i]=c;
i++;
}
while ((c = getchar()) != EOF && c != ' ');
return newOrder;
}
char getNewLetter(char cIn,char newOrder[27])//获取字母对应newOrder的原始字母,成功返回字母,失败返回0
{
static char letters[]="abcdefghijklmnopqrstuvwxyz";
char c;
int i,flag;//flag=1大写字母,flag=0是小写字母
if(cIn>=65 && cIn<=90)//输入的是大写字母
c=cIn+32,flag=1;
if(cIn>=97 && cIn<=122)//输入的是小写字母
c=cIn,flag=0;
for(i=0;i<26;i++)
if(newOrder[i]==c)//在新序列中匹配大写字母或小写字母
{
if(flag)
return letters[i]-32;
else
return letters[i];
}
return 0;
}
⑥ c语言:如何将字符串中指定的字符替换为另一个指定字符
void
rep(char
*s,char
*s1,char
*s2)
{
char
*p;
for(;*s;s++)
/*顺序访问字符串s中的每个字符*/
{
for(p=s1;*p&&*p!=*s;p++);/*检查当前字符是否在字符串s1中出现*/
if(*p)
*s=*(p-s1+s2);
/*当前字符在字符串s1中出现,用字符串s2中的对应字符代替s中的字符*/
}
}
不知道对于不对,你自己去试下,对了请采纳,不对请往下浏览
⑦ C语言字符串替换
效果图:
#include<stdio.h>
intgetLen(chara[]){
intlen=0;
while(a[len]!='