【问题标题】:Unexpected symbol when copying strings in C在 C 中复制字符串时出现意外符号
【发布时间】:2015-03-30 17:59:32
【问题描述】:

我需要从字符串中过滤非字母字符并将所有内容转换为小写。我正在使用以下内容:

void filter(char orig[], char filtered[]) {

    int i;
    for (i = 0; orig[i] != '\0'; ++i){
        if(isalpha(orig[i])){
            filtered[i] = tolower(orig[i]);
        }
    }

    return ;
}

但是,由于最后出现的字符,我的测试失败了。我做错了什么?

【问题讨论】:

    标签: c string copy


    【解决方案1】:

    您必须终止目标字符串,并且您已经跳过了不是字母的字符位置

    void filter(char orig[], char filtered[]) {
    
        int i, j = 0;                               // separate index for filtered[]
        for (i = 0; orig[i] != '\0'; ++i){
            if(isalpha(orig[i])){
                filtered[j++] = tolower(orig[i]);   // inc index
            }
        }
        filtered[j] = '\0';                         // terminate string
        return ;
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 2011-10-26
      • 2020-07-22
      • 2012-12-05
      相关资源
      最近更新 更多