鱼C论坛

 找回密码
 立即注册
查看: 5485|回复: 7

数组的问题啊

[复制链接]
发表于 2012-10-9 20:49:20 | 显示全部楼层 |阅读模式
1鱼币
怎么把int b[]={75,23,98,44,57,12,29,64,38,82};变成char*a[]={"75","23","98","44","57","12","29","64","38","82"};求详细代码啊

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-9 20:55:24 | 显示全部楼层
ASCII里数字只有0-9,你只能用两个字数组表示已个两位数:L
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-9 21:06:53 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-9 21:11:42 | 显示全部楼层
什么是两个字符数组啊?没懂~二维的意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-9 21:25:43 | 显示全部楼层
暗夜 发表于 2012-10-9 21:11
什么是两个字符数组啊?没懂~二维的意思?

我也是个菜,估计也得用char a[10][2]来存10个2两位数、
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-9 22:22:02 | 显示全部楼层
本帖最后由 仰望天上的光 于 2012-10-9 22:24 编辑
  1. /*
  2. 怎么把
  3. int b[]={75,23,98,44,57,12,29,64,38,82};
  4. 变成
  5. char*a[]={"75","23","98","44","57","12","29","64","38","82"};
  6. 求详细代码啊
  7. */
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #define NUMBERS 10
  11. #define ENOUGH_SPACE 20

  12. void init_and_deal( int source[], char* dest[], int size );
  13. void display( char* data[], int size );
  14. void destroy( char* data[], int size );

  15. int main(void) {
  16.         int b[NUMBERS]={75,23,98,44,57,12,29,64,38,82};
  17.         char* a[NUMBERS];
  18.         init_and_deal( b, a, NUMBERS );
  19.         display( a, NUMBERS );
  20.         destroy( a, NUMBERS );
  21.         return 0;
  22. }

  23. void init_and_deal( int source[], char* dest[], int size ) {
  24.         int i;
  25.         for( i = 0; i < size; ++i ) {
  26.                 dest[i] = (char*)malloc(ENOUGH_SPACE);
  27.                 sprintf(dest[i],"%d",source[i]);
  28.         }
  29. }

  30. void display( char* data[], int size ) {
  31.         int i;
  32.         for( i = 0; i < size; ++i )        puts(data[i]);
  33. }

  34. void destroy( char* data[], int size ) {
  35.         int i;
  36.         for( i = 0; i < size; ++i ) free( data[i] );
  37. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-9 22:40:04 | 显示全部楼层
#include<stdio.h>

int main()
{
        int b[]={75,23,98,44,57,12,29,64,38,82};
        char a[10][2];
                for(int i=0;i<10;i++)
                {
                 a[i][0]=b[i]/10+48;
                 a[i][1]=b[i]%10+48;
                }
                for(int i=0;i<10;i++)
                  printf("%c%c\n",a[i][0],a[i][1]);
                  return 0;
}

补充内容 (2012-10-9 22:41):
要熄灯啦,LZ凑合看吧,有什么不懂的再说。。。 具体的思路就是根据数字的ASCII码和字符的数字的ASCII码进行转换,他们的差距是48,把每个数字拆成两位,分别转换就可以了。

补充内容 (2012-10-9 22:43):
a[i][0] 和a[i][1] 不知道为什么显示不出来。。。

补充内容 (2012-10-9 22:43):
是a i 0 和a i 1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-27 01:12:48 | 显示全部楼层
没学过啊,等学会再说吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 12:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表