混合字符串字符数统计

因为汉字占一个以上字节,如何统计一个既有汉字又有字母的字符串呢?

汉字在计算机中的ASCII是以负数来与其他普通字符的ASCII区分的。

#include<stdio.h>
int main()
{
    char buf[256] = "你好世界";
    printf("%d\n",buf[0]); //-60
    return 0;
}

所以想要统计混合字符串中字符个数,就要用到这个特性。

#include<stdio.h>

int main()
{
    char buf[256] = "你好abc";
    int iLen = 0;
    int bufSize = 0;
    while(buf[iLen])
    {
        if(buf[iLen] < 0)
        {
             iLen++;
            // continue;
        }
        iLen++;
         bufSize++;
    }
    printf("%d",bufSize);
}

输出结果:5

原文地址:https://www.cnblogs.com/wanghao-boke/p/11030212.html

时间: 2024-10-10 17:26:29

混合字符串字符数统计的相关文章

js - 字符数统计

统计字母数字等字符 <script> function testx(o) { var v = o.value; var m1 = v.match(/[a-zA-Z]/g) || []; var m2 = v.match(/\d/g) || []; var m3 = v.match(/[^\da-zA-Z]/g) || []; alert("字母:" + m1.length + " , 数字:" + m2.length + " , 其他:&quo

【编程小题目6】字符数统计

题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. #include <iostream>#include <string>using namespace std; int main(){ const int size = 100; char ch[size]; int CharNum = 0, DigNum = 0, NullNum = 0, OtherNum = 0;  for(int i = 0; i < size; i++) { ch[i] =

C语言统计字符数

一段统计字符数的代码及分析. 先贴代码: #include<stdio.h> #include<string.h>//提供memset函数原型. int main() { char S[80]; int C[26],length;//一段声明,即字符数组S,整型数组C,和整型length. memset(C,0,sizeof(C));//将C清零,至于为什么不把字符数组清零,稍后有一段实验过程. for(int i=0;i<=3;i++)//循环4次,读入4行字符串. { g

29:统计字符数

29:统计字符数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多. 输入 输入包含一行,一个字符串,长度不超过1000. 输出 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开.如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符. 样例输入 abbccc 样例输出 c 3 来源 1744 1 #include<iostream> 2 #

Android 简单统计文本文件字符数、单词数、行数Demo

做的demo是统计文本文件的字符数.单词数.行数的,首先呢,我们必须要有一个文本文件.所以我们要么创建一个文本文件,并保存,然后再解析:要么就提前把文本文件先放到模拟器上,然后检索到文本名再进行解析.我感觉第二种方法不可行,因为要测试时,肯定要多次测试,每次还要找到文件再修改文件内容,过于麻烦.所以我用的第一种方法,文件内容更改后直接保存即可. 首先是 页面布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res

编译器DIY之———统计英文文本中的单词数,字符数和行数

咳咳,这一章节应该是连载编译器的DIY的,可是在做DIY之前先用flex 来练练手,对于后面的理解有帮助作用. 在word 中我经常看到有一个单词统计的功能,那么是怎么来实现的了,当然第一个念头就是遍历整个文本依据换行和空格对字符串进行分析,那么这是可行的.可是能不能简单点了,其实对文本做单词分析,大家都知道怎么做,难得地方可能就是代码的实现了,那么现在如果使用正则表达式来实现的话,那么一切问题就Over 了. 环境:ubuntu(当然装了flex的windows和mac也可以) 原码: %{

作业-- 统计文本文件中的字符数、单词数、行数

用AndroidStudio解析统计文本文件中的字符数.单词数.行数. 代码部分: package administrator.mc; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widge

统计输入的行数,单词数和字符数

#include<stdio.h> #define IN 1 /*在单词内*/ #define OUT 0 /*在单词外*/ //统计输入的行数,单词数和字符数 int main(){ int c, nl, nw, nc, state; nw=nl=nc=0; state=OUT; while((c=getchar())!=EOF){ nc++; if(c=='\n') nl++; if(c=='\n' || c=='\t' || c==' '){ state=OUT; } else if(s

从终端获取一个字符串,分别统计其中大写字母、小写字母、数字及其它字符的个数。

//从终端获取一个字符串,分别统计其中大写字母.小写字母.数字及其它字符的个数. #include<stdio.h> #include<stdio.h> int main(int argc,const char *argv[]) { char str[100]; char ch; int len,i; int letter = 0, number = 0, space = 0, other = 0; gets(str); for(i=0;i<strlen(str);i++)