You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为char* name[]和char* name2[]分别执行独立的for循环?

修改后的代码
#include <stdio.h>
#include <string.h>

int main(void)
{
    char* name[] = {"Bill", "Charlie", "Fred"};
    char* name2[] = {"George", "Ginny", "Percy", "Ron"};
    
    // 遍历第一个数组(长度为3)
    for (int i = 0; i < 3; i++) {
        if (strcmp(name[i], "Ron") == 0) {
            printf("Found\n");
            return 0;
        }
    }
    
    // 遍历第二个数组(长度为4)
    for (int i = 0; i < 4; i++) {
        if (strcmp(name2[i], "Ron") == 0) {
            printf("Found\n");
            return 0;
        }
    }
    
    printf("Not found\n");
    return 1;
}
改动说明
  • 把原有的单个循环拆成两个独立的for循环,分别匹配两个数组的长度:第一个循环仅遍历name数组(循环条件i < 3),第二个循环仅遍历name2数组(循环条件i < 4)
  • 每个循环内只检查当前数组的元素,彻底避免了原代码中i >= 3时访问name[i]导致的越界问题,解决终端崩溃隐患
  • 只要在任意一个数组中找到"Ron",就立即输出结果并终止程序;若两个数组遍历完都未找到,则输出"Not found"

内容的提问来源于stack exchange,提问作者Harshil Zahran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 08:45:17