求二维数组的row和col

zdwrabbit 2006-06-20 05:44:15
char* words[]={"Hello\0","worldaa.\0","tsetetat.\0","\0"};
char** p=&words[0];
求p的rows和cols

如果不带'\0'怎么求?
...全文
394 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdwrabbit 2006-06-21
  • 打赏
  • 举报
回复
不是说直接输入row值吗。都没有方法那就直接输入咯。
y_pro 2006-06-21
  • 打赏
  • 举报
回复
虽然结掉了,还是要说......楼主这样只能是针对特定的输入,要在"\0"后面还有成员呢?
zdwrabbit 2006-06-21
  • 打赏
  • 举报
回复
没,加上“\0”,可以用p求出row,不加"\0"可能要直接输入irow的值了。不知道有没有什么别的方法
我知道怎么做了,刚刚傻了。多谢各位
int iRow = 0;
int iCol = 0;
while ((*p) != "\0")
{
iRow++;
char *tmp = *p;
iCol > strlen(tmp)? iCol: (iCol = strlen(tmp));
p++;
}
y_pro 2006-06-21
  • 打赏
  • 举报
回复
用p会失败的关键在于,你不知道什么时候该结束。所以,要么在第1个就结束,要么就一直到访问越界。
如果一定要使用p,就需要约定结束标记,比如连续的N个\0。
zzzace 2006-06-21
  • 打赏
  • 举报
回复
y_pro(魔魂) ( http://community.csdn.net/expert/images/rank/user1.gif) 信誉:100 2006-06-21 09:27:00 得分: 0


int rows = sizeof(words)/sizeof(char*);
int cols = 0;
for (int i = 0; i<rows; i++ )
cols = ( strlen(words[i])>col?strlen(words[i]):cols );


y_pro 2006-06-21
  • 打赏
  • 举报
回复
用p求无法得到有意义的结果。
如果用p去求
结果1:rows = 1;cols = strlen(Hello);
结果2: 访问越界。
zdwrabbit 2006-06-21
  • 打赏
  • 举报
回复
用p求?不是words
y_pro 2006-06-21
  • 打赏
  • 举报
回复
int rows = sizeof(words)/sizeof(char*);
int cols = 0;
for (int i = 0; i<rows; i++ )
cols = ( strlen(words[i])>col?strlen(words[i]):cols );
zdwrabbit 2006-06-21
  • 打赏
  • 举报
回复
希望能给出解法啦,求row和最大的col。
fireseed 2006-06-20
  • 打赏
  • 举报
回复
不带\0也没问题,编译器会给你加上一个,你带了\0,实现上字符串最后就有两个\0了
sharpdew 2006-06-20
  • 打赏
  • 举报
回复
有结束符就直接枚举结束符号作为行数,最长字符串个数作为列数
不带结束符没办法求,不过既然你用常字符串初始化字符串数组,就会自动在字符串后面加结束符号。

64,633

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧