2 qq 36259469 qq_36259469 于 2017.01.07 09:17 提问

C语言字符串的定义问题

问题描述:
  给定n个十六进制正整数,输出它们对应的八进制数。

         输入格式

  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

  输出格式

  输出n行,每行为输入对应的八进制正整数。

这是我遇到的问题,我的想法是:
做一个像数组一样的字符串,这样的话,像对数组处理的方式一样,利用遍历的方法,就可以直接对整个字符串进行处理了。可是如何定义呢?
int n;
scanf("%d",&n);
string str[n]; //这样做,不对呀

3个回答

u012021393
u012021393   2017.01.07 10:07
已采纳

C语言中没有string,若想使用字符串,必须要用char型数组,比如char a[5]="hello",不能使用string a="hello",C++可以

qq_36259469
qq_36259469 蟹蟹,我懂啦。。。
11 个月之前 回复
Fate_Dream
Fate_Dream   2017.01.07 10:34

任何进制数都是整数,计算机在存储的时候都是0和1,进制数只是一种标识方式,
其实 你不用要字符串去存储所谓的16进制数,比如:字符串“ff1”它转换为整形数并不是你想要的结果!
如果你要输入16进制数,可以这样:

int a;
scanf("%x",&a);//以16进制的格式输入

printf("%x",a);//以16进制数的格式输出

qq_36259469
qq_36259469 蟹蟹,我懂啦
11 个月之前 回复
Fate_Dream
Fate_Dream   2017.01.07 10:32

printf("%o\n",&a);//以8进制数的格式输出

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!