我需要从字符串非alpha字符过滤并将所有内容转换为小写。我使用以下内容:
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 ;
}
但是,由于最后出现的字符,我的测试失败了。我做错了什么?
答案 0 :(得分:2)
您必须终止目标字符串,并且已跳过不是alpha
的字符位置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 ;
}