用" argv [2]"替换字符

时间:2012-06-21 20:07:54

标签: c file argv putchar getc

我在这里有一些代码:

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

    int main (int argc, char *argv[])
    {
        char c;

        FILE *fp;

        fp = fopen(argv[1], "r");

        if (fp == NULL)
        {
            printf ("Errore nell'apertura del file %s\n\n", argv[1]);
            exit(EXIT_FAILURE);
        }

        while ( (c = getc(fp)) != EOF)
        {
            if (strcmp(c,argv[2]) == 0)
            {
                c = argv[3];
            }

            putchar(c);
        }

        return 0;
    }

第一个问题:我必须用argv [3]上的其他一些字符替换我的文件(argv [1])中的argv [2]中的一些字符...我知道{{ 1}}是一个大错误的恐怖事情,但是......我怎么能用我在argv [3]中写的字符替换我的“c”?

c = argv[3]

第二个问题:如果在argv [2]中我有2个字符,第一个是要替换的字符,第二个是我必须替换的字符,我该怎么写呢? ?

EX: out.exe file.txt a b
    ------  -------- - -
    program file     1 2
    name    name     letters

1 个答案:

答案 0 :(得分:3)

argv是一个指针char的数组。 argv[n]指针返回给char,而不是char。如果您想获得指针 char指向的第一个argv[n],请取消引用它:

char c = *(argv[n]) // or argv[n][0]

我相信这也应该回答你的第二个问题。