用指针来实现:将用户输入的由数字字符和非数字字符组成的字符串(字符个数不超过256个)中的数字提取出来,例如“msl123xyz456hkl789”,则提取的数字分别为123、456和789,将结果打印在屏幕上(要求每个数字一行)要求:使用指针相关知识来实现
时间: 2023-02-09 17:16:06 浏览: 140
一个字符串,将数字字符和其他字符分开存放的程序
下面是一个使用指针的实现方式:
```
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
char str[256]; // 存储用户输入的字符串
char *p = str; // 定义指针p并指向str数组的第一个元素
printf("请输入一个由数字字符和非数字字符组成的字符串:");
scanf("%s", str); // 读入用户输入的字符串
// 逐个检查字符串中的每一个字符
while (*p != '\0') {
// 如果当前字符是数字字符,则打印当前数字
if (isdigit(*p)) {
printf("%c", *p);
}
// 如果当前字符是非数字字符,则换行
else {
printf("\n");
}
p++; // 移动指针到下一个字符
}
return 0;
}
```
在这个程序中,我们使用一个循环枚举字符串中的每一个字符。对于每个字符,我们使用 C 库函数 `isdigit` 来判断它是否是数字字符。如果是数字字符,我们就打印出来;如果是非数字字符,我们就换行。最后,我们使用指针来移动指针到下一个字符,这样就可以遍历整个字符串。
阅读全文