s本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。
输入格式:
输入在一行中给出一个不超过80个字符且以回车结束的字符串。
输出格式:
在一行中输出转换后的整数。题目保证输出不超过长整型范围。
输入样例:
free82jeep5
输出样例:
825
答案:
#include <stdio.h>
int main()
{
int i = 0, cnt = 0, j = 0, k = 0;
char s[80],a[80];
while ((s[i++] = getchar()) != '\n') {
if (s[i - 1] >= '0' && s[i - 1] <= '9') {
a[cnt++] = s[i - 1];//将数字录入a数组
}
}
while (a[j] == '0') {
j++;
k++;
}//去除数字开头的0
if (k<cnt-1) {
for (int i = j;i < cnt;i++) {
printf("%c", a[i]);
}//注意k<cnt-1是为了防止数组中只出现数字0的情况
}else {
printf("0");
}//只出现数字0的情况
}
//第二种(指针)方法
#include<stdio.h>
#include<string.h>
int main() {
int i=0,j = 0,count=0,count1=0;
char a[81],b[81],*p;
while((a[i++]=getchar())!='\n');
for(p=a;p<a+i;p++){
if(*p>='0'&&(*p)<='9'){
b[count++]=*p;
}
}
while(b[j++]=='0'){
count1++;
}
if(count1==count){
printf("0");
}else{
for(int i=count1;i<count;i++){
printf("%c",b[i]);
}
}
}
该博客介绍了如何从字符串中提取数字并转换为整数。提供了两种C语言的实现方法,一种通过数组,另一种通过指针,对输入字符串进行处理,过滤掉非数字字符,并将连续的数字字符组合成整数输出。
377

被折叠的 条评论
为什么被折叠?



