【发布时间】:2015-07-25 23:06:59
【问题描述】:
我正在使用 C,我需要检查用户输入的第二个命令行参数 argv[1] 是否仅由字母字符组成,如果不是,则执行 else 循环中的操作。我使用了 is alpha 函数,但是当我编译和运行程序时,无论我的第二个命令行参数是什么(按字母顺序或其他),它总是执行“else 循环”。我该如何解决这个问题?
#include <stdio.h>
#include <cs50.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, string argv[])
{
int a = argc;
if (a != 2)
{
return 1;
}
string b = argv [1];
int c = strlen(b);
string m;
for (int i = 0; i < c; i++)
{
if (isalpha(b[c]))
{
m = GetString();
}
else
{
printf("Please provide a valid keyword\n");
return 1;
}
}
}
【问题讨论】:
-
C 世界中的
string是什么 - 肯定不是 C++ -
在 CS50 的世界中,
<cs50.h>标头包含typedef char *string;— 这种设计值得商榷,但课程是这样定义的。