首页 > 解决方案 > C程序用另一个给定的单词替换文本中的单词

问题描述

我需要 C 练习的帮助。这是我尝试做的,但它不起作用。

int main()
{
    int i, leng;
    char phrase[DIM], word[DIM], word2[DIM];

    printf("Write a sentence\n>>");
    fgets(phrase, sizeof(phrase), stdin);

    printf("Enter the word you want to replace in the sentence\n>> ");
    fgets(word, sizeof(word), stdin);

    printf("What do you want to replace it with?\n>> ");
    fgets(word2, sizeof(word2), stdin);

    leng = strlen(phrase);

    for (i = 0; i < leng; i++) {
        if (phrase[i] == word) {
            phrase[i] = word2;
        }
    }
    printf("%s", phrase);
    ...

当我启动它时,会出现以下警告:

从 'char *' 对 'char' 的赋值使指针从没有强制转换的整数 [-Wint-conversion]

指针与整数的比较

标签: c

解决方案


由于我认为您只想更改一个字母,因此不为 parola 和 parola2 创建字符串会更容易。(%c 之前的空格是“吃掉”输入,否则它会跳过那个问题。)

    int i, leng;
    char frase[100], parola, parola2;

    printf("Inserisci una frase\n>>");
    gets(frase);

    printf("Inserisci la lettera che vuoi sostituire della frase\n>> ");
    scanf("%c", &parola);

    printf("Con cosa vuoi sostituirla?\n>> ");
    scanf(" %c", &parola2);
    
    leng = strlen(frase);
    
    
    for(i=0;i<leng;i++){
        if(frase[i] == parola){
            frase[i] = parola2;
        }
    }
    
    printf("%s", frase);

推荐阅读