(C语言)输入一个正整数字符串并将字符串转化为相应的数字。 C语言编程完成将一个任意正整数转换成相应的字符串.用函数

作者&投稿:郭力 (若有异议请与网页底部的电邮联系)
这种态度来学习写代码是不行的!
程序的逻辑自己有没有看过啊?
明显有问题啊
什么老师给的答案,老师给的答案就怎么啦?
老师给的,错了就是错了,先要自己去找问题所在,找不到问题再来问问提
不要动不动就来问,到最后自己还是不会写代码
再者,即使这段代码是对的,也不是一个好的代码,因为很难重用
long cton(const char* str)
{
//这里进行转换操作
return 结果;
}

void main()
{
char str[30]
scanf("%s",str);//输入字符串
long result = cton(str);//调用函数
printf("%ld\n",result);//显示结果
}

说了这些,估计你也不高兴,我也没想拿你的分数,但是希望对你有所触动

正确的结果应该是这样的:

#include <stdio.h>
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
fflush(stdin); //这里必须清除一下键盘缓冲区的数据,否则循环无法继续下去!
c = getchar(); //用c继续接收输入的字符,直到输入字符不是0-9的数字则结束!
}
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
}

#include <stdio.h>
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{s=s*10+c-'0';c=getchar();}//这里少了一句c=getchar();
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
getch();
}

你老师的程序只能将一个正整数字符转化为相应的数字,而不是字符串了,char c; c=getchar();
实际接收一个字符了,如果输入字符串,你参考stdlib中的字符串转换函数:atoi(将字符串转换成整型数);atol(将字符串转换成长整型数)等等很多直接转换的函数了。

input a line of numeric character:321

#include <stdio.h>
long cton(void)
{ char c;
long s=0;
c=getchar();
while(c>='0'&&c<='9')
{
s=s*10+c-'0';
c=getchar(); /*少一条语句,所以陷入死循环了*/
}
return (s);
}
void main()
{ printf("input a line of numeric character:");
printf("%ld\n",cton());
}
现在你可以试试,只要最后一个输入字符不是数字就可以退出并显示数字了

(C语言)输入一个正整数字符串并将字符串转化为相应的数字 请帮我分析下 初学着~

我拿数字字符串123来说吧
输入123,回车
c = getchar(),导致c = '1';进入循环
s = s * 10 + c - '0'; 等价于 s = 0 * 10 + 49 - 48 (说明,0的asc码为48, '1'的asc码为49)-》s = 1
继续 c = getchar(), c = '2'
s = s * 10 + c - '0'; 等价于 s = 1 * 10 + 50 - 48 (说明,0的asc码为48, '1'的asc码为50)-》s = 12
继续 c = getchar(), c = '2'
s = s * 10 + c - '0'; 等价于 s = 12 * 10 + 51 - 48 (说明,0的asc码为48, '1'的asc码为51)-》s = 123
总的来说,就是拼出数字

通过格式操作使任意类型的数据转换成一个字符串

求助C语言编程实现:输入一个整数、一个实数、一个字符,在讲他们输出...
答:include<stdio.h>void main(){ int x; float f; char c; printf("请输入一个整数、一个实数、一个字符(用逗号分隔):"); scanf("%d, %f, %c", &x, &f, &c); //注意格式串中的逗号后有空格! printf("整数=%d, 实数=%f, 字符=%c\n", x, f, c);} ...

输入一个正整数n,再输入n个整数,输出最小值 c语言
答:include <stdio.h>#include <malloc.h>#include <string.h>#define ssAdd 10//内存每次扩充大小 默认10个字符//存储任意位数的整数,只接收数字输入,如夹杂非数字字符,将被过滤char *saveNum(char *str,char c);//参数1:存储位置的首地址;参数2:要存储的数字字符;//查找数字字符串数组中,...

C语言编程题:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列...
答:根据程序需求可以确定所需变量及类型(如下图所示),此处应注意通过循环读取字符并同步统计,故仅需要使用一个char存储字符。3、完成程序设计 此处调试时发现读取repeat后需要使用getchar()去除缓存区存在的字符'\n'避免对实际输入造成影响。4、程序调试检验 程序运行第一行为输入repeat,即读取输入字符串数...

c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?_百度...
答:字符串转整数可以有两种方法:1.使用c语言自带的库函数:atoi。函数原型:int atoi(const char *nptr);功能:把字符串转成整型数。例如:include <stdlib.h>#include <stdio.h> int main(void){ int n; char *str = "12345"; n = atoi(str); printf("int=%d\n",n); r...

C语言程序设计 从键盘输入一个字符串,将其中所有的数字字符抽出,按原...
答:include "stdio.h"int main(void){ char s[100],ns[100];int i,j;printf("Please intput a string...\ns=");gets(s);for(j=i=0;ns[j]=s[i];i++)if(s[i]<'0' ||s[i]>'9')j++;puts(ns);return 0;}

C语言程序:输入一个字符,如果是数字字符,把它转换成相对应的数字并输出...
答:1、新建一个工程和.c文件 ,输入头文件和主函数。2、声明被调用的函数,定义变量类型。3、输入整数。4、用一个if语句去判断整数是否为负数,若为负数则用putchar函数输出一个负号。5、调用一个函数。6、定义函数的返回类型和形参类型。7、通过if语句判断该数是否仅剩一位数,若不是则执行else语句。8...

C语言题 输入一个整数,如果是1,输出Good morning 如果是2输出Good a...
答:include<stdio.h> main(){ int input;printf("请输入一个整数:\n");scanf("%d",&input);if(input==1)printf("Good morning\n");else if(input==2)printf("Good afternoon\n");else if(input==3)printf("Good evening\n");else if(input==4)printf("Good nignt\n");else printf(...

c语言:输入一个正整数,统计该整数中数字8的个数.如果输入的数是负数输出...
答:include <stdio.h>void main(){ int n,count=0; printf("请输入一个自然数:\n"); scnaf("%d",&n); if(n<0) printf("er\n"); else { while(n) { if(n%10==8) count++; n=n/10; } printf("共有%d个8\n",count); }} 程...

输入一个正整数n(1<n<=100),再输入n个字符组成一字符串,用选择法将字符...
答:include<stdio.h> void main(){ int i,j,n,k,t;char a[100];printf("请输入n:\n");scanf("%d",&n);getchar();//吃掉上一个输入产生的回车符,防止被getchar函数误用 printf("请输入字符串:\n");gets(a);for(i=0;i<n-1;i++){ k=i;for(j=i;j<n;j++)if(a[j]...

c语言编程题!字符串复制。输入一个字符串,把它复制到一个字符数组中,并...
答:include <stdio.h> int main(){ char a[100] = "\0",b[100] = "\0";int i = 0;printf("输入一行字符:\n");scanf("%s",a);for(i = 0;a[i] != '\0';i++){ b[i] = a[i];} printf("%s\n",b);return 0;} ...