c - 查找 C 语言中最长的单词

标签 c arrays string

我想通过获取命令行参数从字符串数组中找到最长的字符串。我可以接收命令行参数,但我的逻辑有什么问题?

#include <stdio.h>
#include <string.h>

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

    int i;
    char *c = argv[1];
    int maxSize = strlen(argv[1]);

    for(i=2;i<=argc;i++){
        int len = strlen(argv[i]);
        if(len>maxSize){
            maxSize = len;
            c = argv[i];
        }
    }

    printf("Max length string : %s", c);
}

最佳答案

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]) {
    if (argc == 1) {
        printf("No arguments provided");
        return 1;
    }

    int maxLength = 0;
    int maxIndex = 0;

    int i;
    char* word;
    for (i = 1; i < argc; i++) {
        word = argv[i];
        int length = strlen(word);
        if (length > maxLength) {
            maxLength = length;
            maxIndex = i;
        }
    }

    printf("Max length is %d for string: %s\n", maxLength, argv[maxIndex]);
    return 0;
}

关于c - 查找 C 语言中最长的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44224066/

相关文章:

c - 如何从 C 中的文本文件中读取字符串矩阵?

c - SSL_read 未接收

c - 如何添加/减去指向堆不同部分的指针(在 C 中)

java - 从字符串数组分割成数组

java - Android JSONArray 到 ArrayList

r - 在 R 中交换字符串与数字

c - 代码中的段错误

c - 如何获取 xv6 中内核启动后的系统调用次数?

c# - 查找排序数组中的所有差异

string - 如何制作子字符串列表?