C语言字符串过滤字母
时间: 2023-08-02 07:16:05 浏览: 324
如果你想过滤掉字符串中的字母,可以使用以下方法:
```c
#include <stdio.h>
int main() {
char str[] = "Hello World!";
int i, j;
for(i = 0; str[i] != '\0'; i++) {
// 如果 str[i] 是字母,将其替换为空格
if((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
str[i] = ' ';
}
}
printf("Filtered string: %s", str);
return 0;
}
```
上述代码中,我们遍历字符串中的每个字符,如果当前字符是字母,就将其替换为空格。最终输出过滤后的字符串。
相关问题
过滤字符串中的非字母c语言
可以使用C语言中的字符处理函数来实现过滤字符串中的非字母,例如:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void filter_non_alpha(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (!isalpha(str[i])) {
str[i] = ' ';
}
}
}
int main() {
char str[] = "Hello, world! This is a test string.";
filter_non_alpha(str);
printf("%s\n", str);
return 0;
}
```
这段代码中,`filter_non_alpha` 函数接受一个字符串指针,并使用 `isalpha` 函数判断每个字符是否为字母,如果不是则替换为空格。最后在 `main` 函数中测试该函数的效果。
用指针编写函数saveAlpha过滤字符串中非字母,只保留字母,用C语言编译
以下是一个示例代码,使用指针编写了函数saveAlpha,用于过滤字符串中的非字母字符,只保留字母字符。
```c
#include <stdio.h>
#include <ctype.h>
void saveAlpha(char *str) {
char *p = str; // 指向字符串的指针
// 遍历字符串,只保留字母字符
while (*p != '\0') {
if (isalpha(*p)) {
*str++ = *p;
}
p++;
}
*str = '\0'; // 新字符串以 '\0' 结尾
}
int main() {
char str[100];
printf("请输入字符串:");
gets(str); // 输入字符串
saveAlpha(str); // 过滤字符串中的非字母字符
printf("过滤后的字符串为:%s\n", str);
return 0;
}
```
在上面的代码中,我们首先定义了一个指向字符串的指针 p,然后遍历字符串,判断每个字符是否为字母字符,如果是,则将其复制到新字符串的末尾,并将指向新字符串的指针 str 向后移动一位。最后,我们在新字符串的末尾添加一个 '\0' 结束符,表示新字符串的结束。