替换c中的单词

时间:2015-03-27 21:56:32

标签: c replace

我正在尝试创建一个替换单词的函数。它还支持来自用户的多个参数(单词)。例如,我们有一个名为“fesf”的文本文件,其中包含以下内容:“这是一个测试。”当我们输入

./ a.out test is< fesf.txt

它应该在fesf.txt中用“censor”替换“test”和“is”。 (注意新行,排列应该与原始文件相同,只替换单词)。我创建了这个函数,但不知何故它不起作用。返回时,它不会替换参数。它只打印原始文本。

这是功能:

   #include <stdio.h>
   #include <string.h>

   int main (int argc, char* argv[])

    {

     int i, j,c, state, wordlen, counter, found;
     char word[128];

     state = 0;
     wordlen = 0;

     while (( c= getchar())!= EOF) {

     if ((c >= 'A' && c <= 'Z') || (c == 39))

      {
        state =1;
        word[wordlen] = c;
        wordlen++;

      }

       else if (state == 1)

      {
        state =0;
        found =0;


            }

1 个答案:

答案 0 :(得分:1)

第一个if需要捕获大写和小写字母。一种方法是

if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c == 39))