我这里有一些代码:
#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] 中的一些字符...我知道 c = argv[3]
是一个大错特错的恐怖事情,但是......我如何用我在 argv[3] 中写的字符替换我的“c”??
EX: out.exe file.txt a b
------ -------- - -
program file 1 2
name name letters
第二个问题:如果在 argv[2] 中有 2 个字符,第一个是要替换的字符,第二个是我必须替换的字符,我该怎么写? ?
EX: out.exe file.txt ab
------ -------- --
program file 1/2
name name letters (both on argv[2])
最佳答案
argv
是指向 char
的指针数组。 argv[n]
返回指向 char
的指针,而不是 char
。如果你想获得 指针 argv[n]
指向的第一个 char
然后取消引用它:
char c = *(argv[n]) // or argv[n][0]
我相信这也应该回答您的第二个问题。
关于c - 用 "argv[2]"替换一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11145929/