c语言运行从键盘上输入一个字符串(最多一百个字符),然后顺序输出其中的数字字符
时间: 2024-02-15 10:02:01 浏览: 68
您可以使用循环遍历输入的字符串中的每个字符,然后使用C标准库中的isdigit()函数判断该字符是否为数字字符。如果是数字字符,就将其输出。
以下是一个示例代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char str[101];
printf("请输入一个字符串:\n");
scanf("%s", str);
printf("该字符串中的数字字符为:");
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
printf("%c", str[i]);
}
}
printf("\n");
return 0;
}
```
在上面的代码中,我们首先使用scanf()函数从键盘读取输入的字符串并存储在字符数组str中。然后,我们使用循环遍历该字符串中的每个字符,并使用isdigit()函数判断该字符是否为数字字符。如果是数字字符,就输出该字符。最后,我们输出一个换行符以便于阅读。
相关问题
用C语言写,从键盘输入一个3位的正整数,将其中的每一位数字转换为相应的汉字大 写数字输出。 输入格式: 一个3位的正整数。 输出格式: 汉字大写数字字符串,最后换行。
好的,以下是对应的 C 语言代码实现:
```c
#include <stdio.h>
// 将数字转换为中文大写
char* numToChinese(int num) {
char *chinese[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
return chinese[num];
}
int main() {
int n;
printf("请输入一个3位的正整数:");
scanf("%d", &n);
int a = n % 10; // 个位数
int b = n / 10 % 10; // 十位数
int c = n / 100 % 10; // 百位数
if (c != 0) {
printf("%s", numToChinese(c));
printf("百");
}
if (b != 0) {
printf("%s", numToChinese(b));
printf("拾");
} else if (c != 0 && b == 0 && a != 0) {
printf("零");
}
if (a != 0 || (c == 0 && b == 0)) {
printf("%s", numToChinese(a));
}
printf("\n");
return 0;
}
```
在该代码中,我们使用了 `numToChinese()` 函数将数字转换为中文大写。然后我们使用了 `%` 运算符和 `/` 运算符来获取数字的个位数、十位数和百位数。根据每个数字的值,我们使用 `if` 语句和 `printf()` 函数来输出相应的汉字大写。最后,我们使用 `printf()` 函数输出换行符,以便结果输出在新的一行。
您可以将以上代码保存为 `.c` 文件,然后使用 C 语言编译器进行编译运行。
c语言字符串转为数组,并删除逗号(有十位数,百位数和个位数))
假设你的字符串为str,可以按照以下步骤进行转换和删除操作:
1. 定义一个数组arr,用于存储转换后的数字。
2. 使用strtok函数按照逗号分割字符串,将每个字符串转换为数字并存储到arr中。
3. 使用for循环遍历arr,将每个数字后面的逗号删除。
下面是具体的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "123,456,789";
int arr[3];
int i = 0;
char *token = strtok(str, ",");
while (token != NULL) {
arr[i++] = atoi(token);
token = strtok(NULL, ",");
}
for (i = 0; i < 3; i++) {
printf("%d", arr[i]);
if (i < 2) {
printf(",");
}
}
return 0;
}
```
输出结果为:123,456,789,其中逗号已经被删除。