2013-10-05 42 views
1

我是C中的初学者。在我的程序中,用户将通过命令行添加一个参数。这个参数将是一个字符串,例如“你好!你好吗”。我想从字符串中读取char后的char。该字符串的大小未知。因此,例如在执行程序(在Windows)的是:测试“你好,你好”如何从命令行参数中读取char之后的char?

喜欢的东西

#include <stdio.h> 

int main() 
{ 
    char c; 

    while ((c = getchar()) != EOF) 
    putchar(c); 
    return 0; 
} 

字母C应该从输入字符串,这是我不能让被读取。 我希望我说清楚。

谢谢你的帮助。

回答

1

getchar从标准输入读取,所以你的程序在做什么是由字符标准输入字符来读取,并将其打印到标准输出。有一个错误,您应该声明cint,因为EOF通常是-1


但是,你要打印的命令行参数。要做到这一点,你不需要一个字一个字。您需要使用main版本的参数是这样的:

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

当调用程序test "Hello, how are you"argv[1]已经是参数字符串Hello, how are you。你可以直接使用这个字符串。

我不会给你代码,你可以用printf来打印字符串。如果你想获得每一个字符,使用循环从字符串argv[1]中获取它。

0

C中的命令行参数被传递给主函数。必须具有以下签名声明的主要功能:

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

argc然后是命令行参数的数量,argv是包含每一个参数的字符串数组。

然后,您可以用一个简单的循环访问每个字符:

int i; 
for (i = 0; argv[1][i] != 0; i++) { 
    char c = argv[1][i]; 
    // Use c as you need 
}