① 急求c语言程序:求一个字符串中所有的数字字符对应的数值之和。
#include <stdio.h>
long numcharsum(const char *s)
int main(void)
{
char s[100];
printf("input a string: ");
scanf("%s", s);
printf("%ld", numcharsum(s));
}
long numcharsum(const char *s)
{
long sum = 0;
while(*s)
{
if (*s >= 48 && *s <= 57)
sum += *s - 48;
s++;
}
return sum;
}
② C语言中怎么把数字字符转换成对应的数值
ch-'0'是计算每个数字字符在数字中所对应的位置,较难理解的是10*d ,因为输入的是多个数,每次计算完一个数字字符,依然处在循环中带入下一次的计算,因此10*d的作用就是把上一次算得的结果往高位送,每乘以一个十就高一位。
说得不大清楚,不清楚的话还请见谅啊!
③ C语言编写程序,输入一个字符,如果是数字字符,则转换成对应的数字
1、新建一个工程和.c文件 ,输入头文件和主函数。
④ C语言输入字母,实现输出对应数字,例如输入a或者A输出1,输入F或f输出6。求
这个是很简单的。你可以将字母a用数字的方式打印出来试试,如printf("%d",'a');输出是97,那么只要减去96就可以了。顺便说一下,首先char其实就是8位的整数变量,但是由于ASCII码的编码也是8位,所以常常使用char来表示ASCII字符,因此char也叫字符变量。所以char变量的本质就是数字。不难发现通过查找ASCII表,a的编码的十进制数就是97。当然你也会发现a和A的编码是不一样的,如果你的功能是输入a和A输出都是1,那么就要提前判断一下。
当然你也可以通过判断来实现这个功能,如:
chartemp=getchar();
if(temp=='a')
......
elseif(temp=='A')
......
elseif(temp=='f')
......
还有,可以通过switch来实现,如:
chartemp=getchar();
switch(temp)
{
case'a':
......
break;
case'A':
......
break;
default:break;
}
需要声明一下,由于char本身就是数字,所以是可以使用switch的,但是不要妄图通过switch来判断字符串变量(char[])这是不可行,虽然你可能在其他的高级语言中看到过这种用法,但是在C中是不能运行的。
⑤ c语言中数字和字符相加结果是什么
char c='a' ;
c=c+1 ;
printf("%c %d\n", c , c ); //输出b 98
字符在计算机中是按字符的ascii值存储的,实际上就是个整数,而输出时,按不同的格式串可得到相应的显示:%c 按字符输出 %d按整数输出
⑥ c语言输出英文字母对应数字并相加
//字典顺序是按ASCII码值排序的,若想把数字转换为ASCII码,只须+上'0'就可以了,你可以查一下ASCII码字符集(c++教程的附录通常都有这表),就可以很清楚地知道大写字母、小写字母、数字之间转换关系!#include <iostream>
#include <string>
using namespace std;int main()
{
char* str[5]; //注:字典顺序是按ASCII码排序的,小写的ASCII码值大于所有大写的ASCII码!
cout<<"请输入五个国家名字(英文):"<<endl;
int i,j,t;
for(i=0;i<5;i++)
{
str[i]=new char[20];
cin>>str[i];
}
for(i=0;i<4;i++)
{
t=i;
for(j=i+1;j<5;j++)
{
if(strcmp(str[t],str[j])>0)
{
t=j;
}
}
if(t!=i)
{
char temp[20];
strcpy(temp,str[t]);
strcpy(str[t],str[i]);
strcpy(str[i],temp); //交换
}
} for(i=0;i<5;i++)
{
cout<<str[i]<<'\t';
}
cout<<endl;
return 0;
}输出结果如下:(1)首字母为大写,排序如下:(2)首字母为小写的,排序如下:(3)首字母不统一的情况,则排序情况有点不一样,不要光看表面的字母,c++的小写字母ASCII码比大写字母的大!,排序如下:
⑦ C语言题:输入数字,输出对应的汉字!
汉字编码为双字节一个汉字,所以,可以将汉字,或汉字串存为字符串,根据输入的数字,输出对应的字符串即可。
比如,将字符串存储为二维数组,直接按照下标输出汉字。
#include<stdio.h>
intmain()
{
char*str[3]={"第一组汉字","第二组","第三组测试文字"};
inti;
scanf("%d",&i);
puts(str[i]);
return0;
}
⑧ c语言数字和字符的相互转换
#include "stdio.h"
#include "math.h"
main()
{
char change(int x,int n);
int x,i,j;
char s[8],y;
printf("请输入整数:");
scanf("%d",&x);
for(i=0;i<20;i++)
{
y=change(x,i);
if(y=='