c - 编写程序查找并替换单词中的字符

标签 c string pointers

程序问题是: 编写一个 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 这个词是

它给出一个空白输出

有人,请帮助我获取此代码。

最佳答案

由于 achar* 类型,a[i]chark 也是一个 char,因此您可以像这样简单地比较它们:

if(a[i] == k)

此外,您的 scnafs 使用了换行符,请将其丢弃。改变这个:

scanf("%c\n",&b);

为此:

scanf(" %c",&b);

你应该注意到我在 %c 之前留了一个空格,以便吃掉一个挂起的字符(我有一个例子 here)。

关于c - 编写程序查找并替换单词中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45530542/

相关文章:

c - 文字和常量在C中是同一个概念吗?

compilation - unistd.h 和 crypt.h 中的 crypt 有什么区别?

c - 管道 C 上的多维数组

你能从 C 中的 void * 打印值吗

生成静态输出的 C 图形程序

string - 最长重复子串

Perl 字符串的性能

python - Jellyfish 的 Damerau–Levenshtein 距离计算有问题吗?

c - Pebble SDK - 带字符串的结构数组(可能还有指针)

C# 等效于(将变量读取为不同类型)