【发布时间】:2016-09-27 17:07:07
【问题描述】:
您好,我是 C 的新手,有一个简单的问题。
我做了一个函数,它接受一个字符串,该字符串应该去掉空格和特殊字符,并将所有大写字母转换为小写。
但是当它运行时,它只会将大写转换为小写。
void txtedit(char *str){
int i;
for(i=0; i < strlen(str); i++) {
if (isalpha(str[i])) {
str[i] = tolower(str[i]);
}//end if
}//end for
}//end void function
任何帮助将不胜感激。
【问题讨论】:
-
你认为它将如何“删除”空格?
-
你需要另一个变量,比如
int j = 0;然后str[j++] = tolower(str[i]);完成后不要忘记编写一个新的字符串终止符。这将只保留字母字符,离您的目标更近一步。如果要保留字母和数字,请将isalpha更改为isalnum。 -
为了从字符串中“取出空格和特殊字符”,请务必在末尾留下
'\0'。
标签: c