当前位置:首页 » 编程语言 » c语言ab对应的数字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言ab对应的数字

发布时间: 2022-07-09 21:34:44

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语言编程 判断字符串中“ab”字符串数,要求用函数实现

#include <stdio.h>
#include <string.h>
void delete1(char s[],char t[])
{
int i,j,k;
int flag=0;

//一:代码缺陷
//增加判断。应该
if(!s || !t)
{
return;
}
if(strlen(s) < strlen(t))
{
return;
}

for( i=j=0; s[i]!='\0';i++)
{
for( k=0; t[k]!='\0';k++)
{
if(s[i+k]==t[k]) flag=1;
else
{
flag=0;
break;
}
}
//二,逻辑错误
/*if(flag)
{
s[j++]=s[i+k];
i=i+k+1;
} */
//改成
if(flag)
{
strcpy(&s[i], &s[i + k]);
}

//if(!flag) s[j++]=s[i];
if(!flag) continue;
}
//s[j]='\0';
printf("%s\n",s);
}
main()
{
char str1[255],str2[255];
printf("please input the article:\n");
gets(str1);
printf("please input the words you want to delete:\n");
gets(str2);
delete1(str1,str2);
}

③ C语言如何将字符串转换到对应的01二进制的字符串,比如AB字符就变为字符串“0100000101000010”

如下子程序就可以将一个字符的ASCII码按二进制形式输出:
void binarystring(char c)
{
int i;
for(i=0;i<8;i++)
{ if (c & 0x80) putchar('1'); else putchar('0');
c <<= 1;
}
}
如上定义后,只要调用
binarystring('A');binarystring('B');putchar('\n');
即可输出
0100000101000010

补充:
看了上面xie0500150326兄的回答,补充说明几句。
xie0500150326兄的回答中的trans(char x) ,直接换成我这里的binarystring(char 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语言里面运算结果abc什么意思,然后第二张图的ab啥意思,圈出来的式子的意思

转义字符“\101”就表示第65位ascii码值表示的字符A。八进制101等于65

同理“\x42”表示字符B。十六进制42等于66
第二张图中的计算式很容易理解啊,因为字符可以按照ascii码对应的数值来进行计算
比如c1是"A",c2=c1+1,则c2就是"B"。如果c2=c1+32,那么c2就是“a”
这是因为A对应65,B对应66,a对应97
所以图片里的c1和c2按照这样计算就是对应的“A”和“B”了

⑥ C语言,这些字符代表的数字是啥

这个do while循环共输出三个数。
因为a的ascii码是97,b 的ascii码是98,c的ascii码是99
而%10就是除以10的余数,所以三次的输出分别是7,8,9
连到一起输出,就是789,所以选答案B