c - 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]
指针与整数的比较
解决方案
由于我认为您只想更改一个字母,因此不为 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);
推荐阅读
- asp.net-core - 使用 Microsoft.Extensions.DependencyInjection 创建子容器(或隔离范围)的最佳策略
- python - 将我的数据集分组为 2 个样本时出现 KeyError
- php - 在 Laravel 的数据透视表中播种数据的问题
- mysql - 将子查询中的列添加到主查询的 SELECT 中,而不在主查询中应用 WHERE 中的过滤器
- r - 如何在 R 中创建特定的周变量?
- python - 在输入法python3中输入许多值
- javascript - 画布停止重绘焦点丢失
- python - 如何防止pytest添加LogCaptureHandler?
- reactjs - 错误:无法对未安装的组件执行 React 状态更新
- laravel - 将嵌套的 eloquent 查询转换为列出子元素