| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1073 人关注过本帖
标题:关于测试汉字个数的问题?
只看楼主 加入收藏
未来的道
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-2-19
收藏
 问题点数:0 回复次数:9 
关于测试汉字个数的问题?
一个汉字占2个字符 ,应该用什么方法测试汉字的个数?
搜索更多相关主题的帖子: 汉字 
2008-02-26 11:15
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
#include"stdio.h"
int main(void)
{
    char a[10]="我们";
    int i=0;
    for(;a[i]!='\0';i++)
       printf("%c",a[i]);      
    printf("\n%d",i/2);
    return 0;   
}
2008-02-26 11:45
未来的道
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-2-19
收藏
得分:0 
对不起,看来没有说清楚,我的意思是让它能区分汉字和英文字母。在测的时候不要把两个英文字母也算成1个。
2008-02-26 13:04
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
/*不知是否合你本意 如不符合咱们再期待强人*/
#include"stdio.h"
#include<conio.h>
int main(void)
{
    char a[20]="我们abd的45fds人民";
    int i=0,j=0;
    for(;a[i]!='\0';i++)
    {   if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z'||a[i]>='0'&&a[i]<='9')
        {   /*printf("%c ",a[i])*/
              continue;
        }    
        else   
        {   printf("%c",a[i]);
            j++;           
        }
        
    }   
    printf("\n%d",j/2);
    getchar();
    return 0;   
}

[[it] 本帖最后由 xianshizhe111 于 2008-2-26 14:24 编辑 [/it]]
2008-02-26 14:11
未来的道
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-2-19
收藏
得分:0 
回复 4# 的帖子
xianshizhe111 真是辛苦你了  
我就是想要这个 呵呵
非常感谢你的帮助[bc04]
2008-02-26 14:26
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
我觉得4楼的只能区别字母数字和汉字的却别,要是有标点呢?
我觉得可以这样:
unsigned char c[20],v;
int i;
while ( v = getchar () )
 if ( v > =128 ) {
    getchar () ;
    i++;
 }

[[it] 本帖最后由 qfyzy 于 2008-2-26 14:32 编辑 [/it]]

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-02-26 14:29
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
char a[40]=",我们.,/\=- abd的45fds人民";
/*if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z'||a[i]>='0'&&a[i]<='9')*/     /*if(a[i]>=0&&a[i]<=127) /*改成这样*/


/*楼主是要求区分英文和汉字*/
2008-02-26 15:01
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
不错``大家都厉害```

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-02-26 22:01
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
#include <stdio.h>

int ischinese(char *p)
{
    return *p&0x80;
}   

int main()
{
    char *str="我1们2是->abc!";
    int cnt=0;
    for(char *p=str;*p;p++){
        if(ischinese(p)){
            cnt++;
            p++;
        }
    }
    printf("中文有%d个.\n",cnt);
}
2008-02-26 22:16
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int ischinese(char *p)
{
    return *p&0x80;   // 0x80 即 128
}

如果是 ASCII 码则返回 0


-----------------------
不错。

[[it] 本帖最后由 cosdos 于 2008-2-26 23:05 编辑 [/it]]

—>〉Sun〈<—
2008-02-26 23:03
快速回复:关于测试汉字个数的问题?
数据加载中...
 
   



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

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