给定任意数量的程序参数输入命令行,计算每个参数的长度,最后输出最长的字符串。这是我的代码,但它似乎是错误的。
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
size_t maxlen = 0, len;
int i;
int longest;
for (i = 1; i < argc; i++) {
len = strlen(argv[i]);
if (len > maxlen)
longest = argv[i];
}
printf("The longest string is %s. \n", longest);
return 0;
}
最佳答案
错误:
一个。 char max; ... max = strlen(argv[i]);
错误的; strlen()
返回 size_t
而不是 char
.
两个:if(max < argv[i])
同样错误的是,您将字符串的长度与指向字符串的指针进行比较。那甚至没有意义。你可能想要的是
size_t maxlen = 0, len;
int i, maxindex = 0;
for (i = 1; i < argc; i++) {
len = strlen(argv[i]);
if (len > maxlen) {
maxlen = len;
maxindex = i;
}
}
printf("The longest string is '%s'\n", argv[maxindex]);
关于c - 打印出c中最长的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12921064/