使用isalpha和空格移除

时间:2016-09-27 17:07:07

标签: c

您好我是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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

要摆脱非字母字符和空格,你可以在开头(在你的for循环下)有一个while循环,表示类似

while (!((str[i]>='a'&& str[i]<='z') || (str[i]>='A'&& str[i]<='Z' || line[i]=='\0'))){

(确保新字符串中的字符是a-z或A-Z而不是空格),

然后创建一个名为j的变量来填充字母字符:

        for(j=i;str[j]!='\0';j++)
        {
            str[j]=str[j+1];
        }
        str[j]='\0';
    }
}

然后打印字符串,希望这有效。让我知道发生了什么!