| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 801 人关注过本帖
标题:数组的赋值 memset函数 各位大牛 求解???拜托拜托了
只看楼主 加入收藏
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:4 
数组的赋值 memset函数 各位大牛 求解???拜托拜托了
输入一行字符,统计其中的各个大写字母出现的次数

1   #include <stdio.h>
2   #include <string.h>
3   void main()
4   {
5    char ch;
6    int num[26], i;
7   
8    memset (num, 0, 26*sizeof(int));
9    while ((ch=getchar()) !='\n')
10    if(ch>='A' && ch<='Z')
11      num[ch-'A']++;
12
13   for(i=0; i<26; i++)
14   {
15     if(i%9==0)
16       printf("\n");
17     printf("%c(%d)", 'A'+i, num[i]);
18    }
19    printf("\n");
20
21   }
22拜托了  各位大牛  小弟刚开始学数组 觉得好乱  这个程序看不懂      麻烦解释的详细点  谢谢 感激不尽     
小弟想了很久 也查资料了   还是想不通   


[ 本帖最后由 露营地 于 2015-6-28 23:27 编辑 ]
搜索更多相关主题的帖子: include 统计 字母 
2015-06-28 23:26
家力掠
Rank: 2
等 级:论坛游民
帖 子:52
专家分:16
注 册:2015-6-28
收藏
得分:10 
这是百度百科的:
void *memset(void *s, int ch, size_t n);
将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
设置26个字节并且设置为0.然后满足要求(是大写字母的)值在相应的数组中+1,然后输出.
2015-06-28 23:36
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
收藏
得分:10 
memset (num, 0, 26*sizeof(int));
等价于
for(i = 0; i < 26; i += 1)
    num[i] = 0;
memset 将数组num从首元素num[0]开始,包括首元素的26个元素的值置为0
26*sizeof(int) 的意思是计算出num内存区间的对齐范围。
2015-06-29 00:21
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 2楼 家力掠
谢谢

不要不要的。。。
2015-07-02 22:01
露营地
Rank: 2
来 自:湛江
等 级:论坛游民
帖 子:150
专家分:23
注 册:2015-6-27
收藏
得分:0 
回复 3楼 lmlm1001
谢谢 谢谢

不要不要的。。。
2015-07-02 22:02
快速回复:数组的赋值 memset函数 各位大牛 求解???拜托拜托了
数据加载中...
 
   



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

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