用指针编写函数saveAlpha过滤字符串中非字母,只保留字母,用C语言编译
时间: 2024-02-05 20:10:25 浏览: 31
以下是一个示例代码,使用指针编写了函数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' 结束符,表示新字符串的结束。
相关问题
用c语言编写函数统计字符串里小写字母,大写字母
您好,我可以回答您的问题。以下是用 C 语言编写的函数,可以统计字符串中的小写字母和大写字母数量:
```c
#include <stdio.h>
#include <ctype.h>
void count_letters(char *str, int *lowercase, int *uppercase) {
while (*str) {
if (islower(*str)) {
(*lowercase)++;
} else if (isupper(*str)) {
(*uppercase)++;
}
str++;
}
}
int main() {
char str[] = "Hello World!";
int lowercase = , uppercase = ;
count_letters(str, &lowercase, &uppercase);
printf("Lowercase letters: %d\n", lowercase);
printf("Uppercase letters: %d\n", uppercase);
return ;
}
```
这个函数接受一个字符串和两个指针作为参数,分别用于存储小写字母和大写字母的数量。函数内部使用了 ctype.h 头文件中的 islower 和 isupper 函数来判断字符是否为小写字母或大写字母。在主函数中,我们可以调用这个函数并打印出统计结果。
用指针编写count函数统计字符串中大写英文字母个数和小写英文字母个数
以下是一个使用指针的 C 代码示例,可以统计字符串中大写英文字母和小写英文字母的个数:
```c
#include <stdio.h>
void count_letters(char *s, int *upper_count, int *lower_count) {
*upper_count = 0;
*lower_count = 0;
while (*s != '\0') {
if (*s >= 'A' && *s <= 'Z') {
(*upper_count)++;
} else if (*s >= 'a' && *s <= 'z') {
(*lower_count)++;
}
s++;
}
}
// 示例用法
int main() {
char s[] = "Hello, World!";
int upper, lower;
count_letters(s, &upper, &lower);
printf("大写字母个数:%d\n", upper); // 输出 1
printf("小写字母个数:%d\n", lower); // 输出 9
return 0;
}
```
该函数接受一个指向字符串的指针,以及两个指向整数的指针,用于存储大写字母和小写字母的计数。在循环中遍历字符串中的每个字符,并对每个大写字母和小写字母计数,最后将计数器的值存储在指针变量中。