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

如何用C语言实现查找表格中首个以'n'结尾的短语?

解决C语言查找首个以'n'结尾短语的问题

先修正并完成你的代码,实现需求:

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

typedef char TTablaFrases[5][80]; // 存储5个最长79字符的短语(含字符串结束符)

// 查找首个以'n'结尾的短语并打印,返回其索引;未找到返回-1
int FraseAcabadaEnN(TTablaFrases tabla)
{
    // 遍历表格中的每个短语
    for (int i = 0; i < 5; i++)
    {
        // 跳过空字符串,避免越界访问
        if (tabla[i][0] == '\0')
            continue;
        
        // 获取字符串长度,定位最后一个字符
        size_t len = strlen(tabla[i]);
        if (tabla[i][len - 1] == 'n')
        {
            printf("找到首个以'n'结尾的短语:%s\n", tabla[i]);
            return i;
        }
    }
    printf("未找到以'n'结尾的短语\n");
    return -1;
}

int main(void) {
    
    TTablaFrases miTabla;
    
    // 清空数组,避免未初始化的垃圾值干扰判断
    memset(miTabla, 0, sizeof(miTabla));
    
    strcpy(miTabla[0], "First phrase");
    strcpy(miTabla[1], "Second phrase n");
    strcpy(miTabla[2], "Third phrase");
    
    // 调用查找函数
    FraseAcabadaEnN(miTabla);
    
    return 0;
}

关键说明:

  • 遍历逻辑:循环覆盖TTablaFrases定义的5个短语位置,确保检查所有有效元素。
  • 空串防护:先判断字符串是否为空,避免strlen返回0后访问tabla[i][-1]的越界错误。
  • 字符定位:用strlen获取字符串长度,最后一个有效字符的下标为len-1,直接匹配'n'即可。
  • 数组初始化:添加memset清空整个数组,避免未赋值的元素残留垃圾值影响判断。
  • 返回值设计:找到短语返回对应索引,未找到返回-1,方便后续扩展逻辑。

运行代码后会输出:

找到首个以'n'结尾的短语:Second phrase n

内容的提问来源于stack exchange,提问作者Roberto Guarneros

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:56:04