我定义了两维数组,
char ip[4][4]={"192","16","13","228"};
然后打印出以上数组:
print("%s,%s,%s,%s\n",ip[0],ip[1],ip[2],ip[3]);
得到的结果是,192,,,3
我希望得到的结果是192,16,13,228。
哪里搞错了?
又试了一次,还是不行。
是printf。
试着你改成 char [][],char *ip[4]
这表示一个数组有四个元素,而每个元素是一个字符串
应该更能清楚地表达你要表达的效果
这表示一个数组有四个元素,而每个元素是一个字符串
应该更能清楚地表达你要表达的效果
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-04-01
char ip[4][4]={"192","16","13","228"};
printf("%s,%s,%s,%s\n",ip[0],ip[1],ip[2],ip[3]);
应当没问题。
换个变量名字试试。会不会 你的编译器 里 ip 做了 TCP 的 ip 专用了?
char p[4][4]={"192","16","13","228"};
printf("%s %s %s %s\n",p[0],p[1],p[2],p[3]);
printf("%s,%s,%s,%s\n",ip[0],ip[1],ip[2],ip[3]);
应当没问题。
换个变量名字试试。会不会 你的编译器 里 ip 做了 TCP 的 ip 专用了?
char p[4][4]={"192","16","13","228"};
printf("%s %s %s %s\n",p[0],p[1],p[2],p[3]);
第2个回答 2008-04-01
打错了函数吧?
是printf();
用gcc测试了可以的,得到预期的结果。
是printf();
用gcc测试了可以的,得到预期的结果。
第3个回答 2015-11-30
指用来存放字符的数组字符数组的定义用来存放字符量的数组称为字符数组。其定义的一般形式时: char 数组名[数据长度] 字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用两个字节。字符数组类型说明的形式与前面介绍的数值数组相同。
例如:
char a[10];
由于字符型和整型通用,也可以定义为:
int a[10];
但这时每个数组元素占2个字节的内存单元。
字符数组也可以是二维或多维数组,例如:
char c[5][10];
例如:
char a[10];
由于字符型和整型通用,也可以定义为:
int a[10];
但这时每个数组元素占2个字节的内存单元。
字符数组也可以是二维或多维数组,例如:
char c[5][10];