编写程序,将用户输入字符串中的 桂性伟 数字字符和英文字母分开后依次交替输出(假设 用户输入的字符串中只包含英文字母和数字字符, 本题要求使用指针访问的方法实现。
时间: 2024-02-03 22:11:26 浏览: 67
以下是使用指针访问的方法实现的代码:
```c
#include <stdio.h>
#include <ctype.h>
void print_digits_and_letters(char *str) {
char *p = str;
while (*p != '\0') {
if (isdigit(*p)) {
printf("%c", *p);
}
p++;
}
p = str;
while (*p != '\0') {
if (isalpha(*p)) {
printf("%c", *p);
}
p++;
}
}
int main() {
char str[100];
printf("请输入字符串:");
fgets(str, 100, stdin);
printf("分离后的数字和字母为:");
print_digits_and_letters(str);
return 0;
}
```
代码中使用了两个指针,第一个指针 `p` 用于遍历字符串,第二个指针则没有使用,因为不需要倒序输出。
首先,第一个指针 `p` 遍历整个字符串,如果当前字符是数字,则直接输出;然后再次遍历整个字符串,如果当前字符是字母,则直接输出。
需要注意的是,`isdigit` 和 `isalpha` 是 `ctype.h` 中的函数,用于检查字符是否是数字和字母。`fgets` 函数用于从标准输入流中获取用户输入的字符串。
阅读全文