程序问题是: 编写一个 C 程序来查找和替换单词中的字符。 这里的 flag('A'/'F') 表示是所有出现的地方都必须被替换,还是只有第一个出现的地方必须被替换。
这段代码是我写的
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void cond(char *a,int n,char k,char l,char m)
{
printf("The word is\n");
int i,count=0,max=0;
switch(m)
{
case 'A':
for(i=0;i<n;i++)
{
if(a[i]==k)
{
a[i]=l;
count++;
}
}
if(count==0)
{
printf("No such character present in the word.");
}
else
for(i=0;i<n;i++)
{
printf("%c",a[i]);
}
break;
case 'F':
for(i=0;i<n;i++)
{
while(max<1)
{
if(a[i]==k)
{
a[i]=l;
max++;
}
}
}
if(max==0)
{
printf("No such character present in the word.");
}
else
for(i=0;i<n;i++)
{
printf("%c",a[i]);
}
break;
}
}
int main()
{
char a[20],b,e,p;
printf("Enter the word:\n");
scanf("%s",a);
printf("Enter the character to be find:\n");
scanf("%c\n",&b);
printf("Enter the character to be replaced:\n");
scanf("%c\n",&e);
printf("Enter the 'A'/'F':\n");
scanf("%c\n",&p);
int n=strlen(a);
cond(a,n,b,e,p);
return 0;
}
它没有给出任何输出
例如: 如果我输入这个 输入词:飞机 输入要查找的字符:a 输入要替换的字符:z 输入'A'/'F':A 这个词是
它给出一个空白输出
有人,请帮助我获取此代码。
最佳答案
由于 a
是 char*
类型,a[i]
是 char
。 k
也是一个 char
,因此您可以像这样简单地比较它们:
if(a[i] == k)
此外,您的 scnafs 使用了换行符,请将其丢弃。改变这个:
scanf("%c\n",&b);
为此:
scanf(" %c",&b);
你应该注意到我在 %c
之前留了一个空格,以便吃掉一个挂起的字符(我有一个例子 here)。
关于c - 编写程序查找并替换单词中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530542/