我在比较C中的字符串时遇到了麻烦.首先,我需要从命令行参数中找到每个字符串的长度,然后比较它们以及打印最大的字符串.
到目前为止,它只是打印每个类型字符串的长度.我需要根据长度而不是字母顺序来比较它们.
我不明白为什么它现在正在工作,我该怎么办呢?谢谢!
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int i, length;
for(i = 0; i<argc; i++)
{
length = strlen(argv[i]);
printf("%s %d\n", argv[i], length);
if(strlen(argv[i]) < strlen(argv[i+1]))
{
printf("%s is the biggest \n", argv[i+1]);
}
else
{
printf("%s is the biggest \n", argv[i]);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您的代码存在一些问题.
首先,argv[i+1]是非法操作,如果你正在做i < argc的for.您需要更改i < argc到i < argc - 1的for.
其次,你可能没有比较你想要的字符串.argv[0]是表示程序路径的字符串; 传递给你的程序的第一个参数是argv[1].因此,你需要改变 i = 0的for到i = 1.
最后,如果您只想要最大的字符串,则不应在for循环中进行任何打印.相反,您应该创建两个变量,max_length以及max_length_idx存储到目前为止找到的最大字符串的长度和索引的位置.然后,在for循环之后,程序将打印出字符串argv[max_length_idx].
| 归档时间: |
|
| 查看次数: |
5592 次 |
| 最近记录: |