在 C 中复制字符串时出现意外符号
Unexpected symbol when copying strings in C
我需要从字符串中过滤非字母字符并将所有字符转换为小写。我正在使用以下内容:
void filter(char orig[], char filtered[]) {
int i;
for (i = 0; orig[i] != '[=10=]'; ++i){
if(isalpha(orig[i])){
filtered[i] = tolower(orig[i]);
}
}
return ;
}
但是,由于字符出现在末尾,我的测试失败了。我做错了什么?
您必须终止目标字符串,并且您跳过了非字母的字符位置
void filter(char orig[], char filtered[]) {
int i, j = 0; // separate index for filtered[]
for (i = 0; orig[i] != '[=10=]'; ++i){
if(isalpha(orig[i])){
filtered[j++] = tolower(orig[i]); // inc index
}
}
filtered[j] = '[=10=]'; // terminate string
return ;
}
我需要从字符串中过滤非字母字符并将所有字符转换为小写。我正在使用以下内容:
void filter(char orig[], char filtered[]) {
int i;
for (i = 0; orig[i] != '[=10=]'; ++i){
if(isalpha(orig[i])){
filtered[i] = tolower(orig[i]);
}
}
return ;
}
但是,由于字符出现在末尾,我的测试失败了。我做错了什么?
您必须终止目标字符串,并且您跳过了非字母的字符位置
void filter(char orig[], char filtered[]) {
int i, j = 0; // separate index for filtered[]
for (i = 0; orig[i] != '[=10=]'; ++i){
if(isalpha(orig[i])){
filtered[j++] = tolower(orig[i]); // inc index
}
}
filtered[j] = '[=10=]'; // terminate string
return ;
}