输入一个以回车结束的字符串,把字符串中的所有数字字符转换为整数,去掉其他字符。如何做?
发布网友
发布时间:2022-05-13 14:55
我来回答
共3个回答
热心网友
时间:2023-10-13 07:54
输入一个以回车结束的字符串(少于10个字符),它由数字字符组成,将该字符串转换成整数后输出。注意,不能直接调用库函数atoi完成。
**输入提示信息:"Enter a string: "
**输出格式要求:“digit = %d\n”
程序运行示例如下:
Enter a string: 123
digit = 123
#include<stdio.h>
int main()
{
int i, n;
char a[10];
printf("Enter a string: ");
i = 0;
while ((a[i] = getchar()) != '\n')
{
i++;
}
a[i] = '\0';
n = 0;
for (i = 0; a[i] != '\0'; i++)
{
if (a[i] <= '9' && a[i] >= '0')
{
n = n * 10 + (a[i] - '0');//“a[i]-'0'”将数字字符转为ASCII码运算,差值即为数字本身的大小
}
else //遇见非数字结束转换
break;
}
printf("digit = %d\n", n);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
按照字符串顺序从小到大排序,删除重复字符
热心网友
时间:2023-10-13 07:55
#include "stdio.h"
#include "string.h"
int main(void)
{
int i,s,len;
char str[80];
i=0;
s=0;
while((str[i]=getchar())!='\n'){
i++;
len=i;
}
str[i]='\0';
for(i=0;str[i]!='\0';i++)
if(str[i]>='0'&&str[i]<='9')
s=s*10+str[i]-'0';//“str[i]-'0'”将数字字符转为ASCII码运算,差值即为数字本身的大小
printf("%d",s);
printf("\n");
}
热心网友
时间:2023-10-13 07:55
那种语言?