| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2837 人关注过本帖
标题:是关于二维数组的编程问题
只看楼主 加入收藏
YUILILI
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-25
结帖率:50%
收藏
已结贴  问题点数:4 回复次数:4 
是关于二维数组的编程问题
先上题目:编写一个函数,void fun(char a[],char b[][100]),它把传递过来的一段英文句子(char a[100])中的每个单词分解出来,存放在一个二维数组b[200][100]中,每行存放一个单词,在main函数调用,也在main函数输出分解后的每个单词。

现在我的毛病就是对于这个分解单词存放数组中不了解。
我一开始是想用英语句子中的空格号搞动作的,发现有的行不通就抛弃了。
我想问的是怎么对一个字符串里面的单词分解而且存放的问题。

搜索更多相关主题的帖子: 英语句子 字符串 单词 而且 
2016-07-03 01:02
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:2 
那就用所有非字母作标识就行了
2016-07-03 06:30
zhulei1978
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:2 
不用二维数组吧,用一个字字符串数组就可以了

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2016-07-03 06:54
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:2 
如果说分解单词的话,那么只要只要判断当前字符是不是(字母或’号),不是的就是相当于“\0”了。
不过,二维数组就这个函数传递可能会复杂一些,....
但如果你不介意的话,我个人觉得没必要真的使用哪个二维数组,我们可以把这个字符串传递进函数以后,函数把每一个单词的开始位置的下标记录下来,形成一个一维数组,
在读写某一个单词的时候只要对照一位数组里面的标记到字符串去进行实际操作就好(注意哦,两个相邻单词的中间一定还有一个分割标记,要适当处理)。

φ(゜▽゜*)♪
2016-07-03 18:23
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
记住,对第一个字符要单独进行判断是不是字母,这关系你的程序能否正确输出的一个关键。不管你要用一维存放还是二维存放。
一段英文句子(char a[100])只要一个字符一个字符的判断,如果是字母就就存入b[n][m++]的二维数组中就好了。
如果是非字母,就让n+1跳到下一行,m重回0。缺点是子函数要返回一个值n+1,才知道有几个单词。
如果一子函数一定要空函数,只要将本来应该用在子函数的代码放到主函数就行了。
真的改成一维字符数组来存判断是一样的,只要将非字母改成空格或者其它的标识,输出的时候只要碰到这些标识跳过就行了。
你可以用isalpha,检查ch是否字母,是返回1,不是返回0,头文件是ctype.h。用这个方便点。



[此贴子已经被作者于2016-7-3 18:52编辑过]

2016-07-03 18:49
快速回复:是关于二维数组的编程问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022099 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved