c++统计用户输入的字符串的空格字符,英文字符,数字个数,其他字符个数以及用户输入字符串的长度

我在统计中文的时候出现了问题,请各位大神指教一下
#include
#include
using namespace std;
int main()
{

string str;
cout << "请输入一个字符串,以换行为结束!\n";
getline(cin, str);
size_t count = 0;
size_t spaceNum=0;
size_t letter=0;
size_t chineseNum=0;
size_t other=0;
for(size_t i = 0; i < str.size(); i++) //如果变量i 小于等于字符串str长度的时候,就继续循环,反之 循环结束
    if(isdigit(str[i])) //判断是否是数字
        count++;
    else if(isspace(str[i]))//判断是否是空格
        ++spaceNum;
    else if(isalpha(str[i]))//判断是否是字母
        ++letter;

    else if(str[0]>=0xB0)
        ++chineseNum;

    else
        ++other;


cout<<"字符串所占字节"<<sizeof str<<"\n"<<endl;
cout << "数字的个数为: " << count <<"\n"<< endl;
cout<<"空格的个数是"<<spaceNum<<"\n"<<endl;
cout<<"字母的个数是"<<letter<<"\n"<<endl;
cout<<"其他字符的个数是"<<other<<"\n"<<endl;
cout<<"中文的个数是"<<chineseNum<<"\n"<<endl;



system("pause");

}

c++

7个回答

我发现你所显示的代码中函数没有反回值

zhjianglin
zhjianglin 没有返回值会导致程序终止么
4 年多之前 回复

一个中文占两个字符,当你判断到是汉字时,还是 i++就不对了吧

zhjianglin
zhjianglin 那该怎么做
4 年多之前 回复

else if(str[0]>=0xB0)(str[0]<0来判断是否中文)

zsc2014030403015
梧桐下的四叶草 回复zhjianglin: 程序本来就有错误,你下个vs2012来跑一下程序就知道有错误了
4 年多之前 回复
zhjianglin
zhjianglin 还是不行 当输入中文的时候程序直接中止了
4 年多之前 回复

str[i]不是str[0]

zsc2014030403015
梧桐下的四叶草 回复zhjianglin: 不换i就只会取第一个字符,不会i个
4 年多之前 回复
zhjianglin
zhjianglin 能说详细点吗
4 年多之前 回复

逻辑上出问题了吧,你统计中文,但除了你的那几个if,else的情况,还是有情况既不是中又不是字母,数字,而是符号吧

zhjianglin
zhjianglin 其他的用的onther统计的
4 年多之前 回复

中文是占二个字节的。你的代码实现不了这个功能

将string str;换为char str[一个常数];cin.getline(str,一个常数);改成这样就行了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
输入字符串,统计其中数字,空格和其他字符的个数
#define _CRT_SECURE_NO_WARNINGS #include int main() {  char a;  int num = 0;  int space = 0;  int other = 0;  while ((a = getchar()) != '\n')  {   if ((a >= '0') && (a <= '9'))    num++;   else if (a 
Python输入字符串统计英文,数字,空格,其他字符的个数
def count(*a): nub = 0 speace = 0 en = 0 other = 0 length = len(a) for i in range(length): for each in a[i]: #isalpha()判断字符ch是否为英文字母 if each.is...
统计用户输入的数字、空白符及其他字符出现个数
int c, i, nwhite=0, nother=0; int ndigit[10]; for (i = 0; i &lt; 10; ++i) ndigit[i] = 0; while ((c = getchar()) != '\n') { if (c &gt;= '0' &amp;&amp; c &lt;= '9') ++ndigit[c - '0'];//采用int型...
输入一行字符串,统计英文字母,数字和其他字符个数
/输入一行字符串,统计英文字母,数字和其他字符个数/ package cn.amjt; import java.util.Scanner; public class demo05 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String str = sc.nex...
输入一行字符串,统计其英文字母,数字和其他字符个数。
急求~~
统计输入字符串中出现的字符个数
思路:将字符串转化为字符数组,存入map集合中(字符为key,出现次数为value),遍历key,如果key不存在则value置为1,若存在则value+1;
字符串字符个数统计
#includernusing namespace std;rnvoid main()rnrn char ch,str1[30];rn int i = 0,j =0, len,value = 0;rn cout << "input the string:" << endl;rn cin >> str1;rn len = strlen(str1);rn ch = str1[i];rn while(ch != '\0')rn rn while(j < len)rn rn if(ch = str1[j])rn value++;rn j++;rn rn cout << "the number of "<
VC统计字符个数,输入一段字符串,统计其个数
VC统计字符个数,输入一段字符串,统计其个数
统计字符串字符个数
#include #include using namespace std; int main() { char a[1024] = {"AABCCCDDEEF"}; int len=strlen(a); int size=0; char temp ='\0'; for(int i=0;i<len;i++) { if(a[i]!=
输入一行字符,统计其中字母数字空格和其他字符的个数
输入一行字符,统计其中字母数字空格和其他字符的个数?输入输出都在函数中写好,直接调用即可。比较值得借鉴的是这种方式中的获取输入的方式,通过while循环和getchar()函数的配合使用户能不断的输入字符直至回车键。
统计字符串内英文、数字、空格及其他字符的个数
题目描述 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数 输入描述: 输入一行字符串,可以有空格 输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数 算法实现:package com.husweijishi.suanfa;import java.util.Scanner; import java.util.regex.Matcher; import jav
统计一行字符串中的英文字母,空格,数字和其他字符的个数
#include&lt;stdio.h&gt; void main() { char c; int el=0,sp=0,nu=0,other=0; while((c=getchar())!='\n') /*getchar()可以输出单个字符也可以输入多个字符*/ { if(c=='\n') ...
统计字符串中字母,数字,空格和其他字符的个数。
#include &amp;lt;stdio.h&amp;gt;int letter,digit,space,others;int main(){void count(char []); char text[80]; printf(&quot;input string:\n&quot;); gets(text); printf(&quot;string:&quot;); puts(text); letter=0; digit=0; space=0; o...
统计出字符串中字母、空格、数字和其他字符的个数
def team(*text): one = len(text) for i in range(one): letters = 0 space = 0 digit = 0 others = 0 for each in text[i]: if each.isalpha() == True: letters += 1 elif each.isspace() == True: space += 1 el...
键盘输入字符串统计英文、空格、数字、和其他字符个数
import java.util.*; public class KeyboardOut{ public static void main(String[] args){ //输入字符 Scanner e=new Scanner(System.in); System.out.println(&amp;quot;请输入一行字符:&amp;quot;); //循环监听,键盘事件abcd分别统计英文、空格、数字、和其他字...
输入一段字符,判断字符串中字母的个数,数字的个数和其他字符个数
/* * 输入一段字符,判断字符串中字母的个数,数字的个数和其他字符个数(参考ascii表) * */ public static void main(String[] args) { System.out.println("请输入一段字符串:"); Scanner scan = new Scanner(System.in); String str = scan.next
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
判断输入的字符串中数字,大写字符,小写,其他字符,英文字符的个数
代码:rn[code=Assembly]rndatarea segment rn errstr db 'length is too long!',13,10,'$'rndatarea endsrnprognam segment rnmain proc farrn assume cs: prognam,ds:datarea,es:datarearnstart:rn push dsrn sub ax,axrn push axrn mov ax,datarearn mov ds,axrn mov ax,datarearn mov es,axrn ;+++++++++++++++++++++++++++++++++++++rnrn mov ax,0rn mov bx,0rn mov cx,0rn mov di,0rnAGAIN:rn mov ax,bxrn add ax,cxrn add ax,dxrn add ax,dirn cmp ax,1ehrn ja ERRrnrn mov al,01hrn int 21hrn cmp al,'$'rn je EXITrn cmp al,'0'rn jb L1rn rn cmp al,'9'rn jbe L2rn cmp al,'A'rn jb L1rn cmp al,'Z'rn jbe L3rn cmp al,'a'rn jb L1rn cmp al,'z'rn jbe L4rn rn add bx,1rn jmp AGAINrn rnERR:rn mov dx,offset errstrrn mov ah,9hrn int 21hrnL1:rn add bx,1rn jmp GOBrnL2:rn add cx,1rn jmp GOB rnL3:rn add dx,1rn jmp GOBrnL4:rn add di,1rn jmp GOBrnrnGOB:rn cmp al,'$'rn je EXITrn jmp AGAINrnEXIT:rn rnrn ;++++++++++++++++++++++++++++++rn retrnmain endprnprognam endsrn end startrn[/code]rn无语法错误,运行直接给我输出:length is too long!了,请问错在哪里
汇编语言统计输入字符个数
汇编语言统计输入字符个数,分别输出数字,字母,其他字的个数.
统计输入的某个字符的个数
统计输入的某个字符的个数,并输出结果,比如说A
统计输入的字符类别与个数
#include &amp;lt;stdio.h&amp;gt; int _tmain() { int a =0, b=0, s=0; char d ; printf(&quot;输入一串字符,用以统计大小写字母数:\n&quot;); while ( (d=getchar() )!='\n' )//输入一行字符串 { if (d&amp;gt;='a' &amp;amp;&amp;amp; d&amp;lt;='z'){a++;} ...
统计输入字符个数的问题!
总共可以输入30个字。已经输入aaa个字rnrnrnrn怎样才可以得到aaa呢??
我想用getchar统计输入的换行个数,空格个数,以及输入字符的总个数,但却做不到了~~
这个是我的程序,要么就只能统计总个数,要么只能分别统计空格的和换行的,大家看看该怎么解才好呢? rnrn#include rnvoid main() rn rn int c; rnint nw=0; rnrnint nk=0; rnrnint nr=0; rnwhile rn( rnrn (c= getchar() )!=EOF rnrnrn) rn//nw++; (统计总个数的我不知道该放到哪里好) rnif(c=='\n') rnrnnr++; rnelse if(c==' ') rnnk++; rnrnrnrnrnrnprintf("\nthe rows is : %d",nr); rnprintf("\nthe blank is : %d",nk); rn printf("\nthe all chars is : %d",nw); rnrn
输入一行字符,统计指定字符的个数。
rn#include "stdio.h"rn#include "string.h"rnrnint main()rnchar c[100],a,b,n,i,f;rn printf("输入一行字符\n");rn scanf("%s",c);rn printf("指定字符\n");rn scanf("%c",&a);rn for(i=0;i<=strlen(c);i++)rn if (c[i]!=a) break;rn else rn n=0;rn n=n+1;rn printf("%d\n",n);rn return 0;rnrnrn输入一行字符,统计指定字符的个数。rnrn程序不对。。。
汇编统计字符串数字及字符个数
定义一串字符串(50个,包含字母和数字及其它字符,注意要有大小字母) 将该字符串中的字母和数字分别找出来 存放到原来实验一定义的加数,被加数变量中
统计字符串中字符个数
有时一个字符串中同时包含了中文,英文,标点符号,特殊符号如@#$等,如何统计该字符串中包含了多少个字符呢? 可以用一下函数 int CountWord( std::string content ) { int cutNum = 0;  char* contsms = (char*)content.c_str(); while( *contsms ) { if( 0 > *conts
统计字符串中的字符和个数?????
今天做一道题, 输入一个字符串,要求分别统计其中 中、英文字母,空格,数字字符、和 其他字符个数, 并显示它们。rnrn请问大家 这个怎么入手 用ASCII码比较吗? 请大家指点下!
输入一行字符,统计其中英文字符、数字字符、空格和其他字符的个数
#include<stdio.h> #include<ctype.h> #define N 100 int main()//输入一行字符,统计其中英文字符、数字字符、空格和其他字符的个数 { char zx[N]; int i; int yw=0,sz=0,kg=0,qt=0; printf("请输入一行字符:"); gets(zx); for(i=0
统计字符串中字符的个数
题目: 给定一个字符串,统计其中每个字符串出现的个数。 aaahahajabhbohfg变为a6b2f1g1h4j1o1 思路: 1. 首先确定用map来解决,key中存放字符,value中存放个数。 2.代码结构: A 定义一个Map集合 B 把字符串转换为字符数组 C 遍历字符数组,得到每一个字符 D 拿字符到Map中找,看返回值,是null,就把改字符作为键,1作为
统计字符串中的字符个数
1统计字符串中的字符个数。(4分) 题目内容: 定义函数countchar()统计字符串中所有出现的字母的个数(允许输入大写字符,并且计数时不区分大小写)。 输入格式: 字符串 输出格式: 列表 输入样例: Hello, World! 输出样例: [0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 3, 0, 0, 2, 0, 0, 1, 0
C语言,统计输入的字符各类的个数
#include<stdio.h> int main() { int char_num=0,int_num=0,space_num=0,other_num=0; char ch; while((ch=getchar())!='\n') { if(ch<='z'&&ch>='a'||ch<='Z'&&ch>='A') {
C语言分类统计输入字符个数
/* 文件名:统计字符 编写日期:2018.9.5 使用软件:vs2017 编写思路:使用while语句循环统计 */ #include&amp;lt;stdio.h&amp;gt; int main() { char c; int letters_num = 0, space_num = 0, digit_num = 0, other_num = 0; whil...
C语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
//5.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数 abc123 !! AAAA char c; //输入的字符串 int i=0; //字符总数 int upper_case=0; //大写字母个数 int lower_case=0; //小写字母个数 int space=0; //空格个数 int number=0; //数字个数 int other=0; //其他字...
c语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。解:程序:#include int main(){ char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:"); while ((c=getchar())!='\n') { if (c >= 'a'&&c = 'A'&&c { letters++;
判断输入字符串中相同字符的个数
先输入一段字符串,改程序判断相同字符串的个数,并输出。
求出输入的字符串中相同的字符的个数
Scanner in = new Scanner(System.in);rnString str_input = in.nextLine();rn假如:输入的是 abjababrn则通过程序算出来 a3个 b3个 j1个rn请问如何编写
控制输入字符个数*C
针对所有数据的输入,要求封装函数实现,控制输入的最大长度,如姓名最多只能输入20个字符,当客户输入满20个字符后,不允许再输入21个以上的字符,但可以对已输入的20个字符进行修改。
第二篇博客--输入一字符串,统计其字母、数字、空格和其他字符的个数
#include&lt;stdio.h&gt; #include&lt;string.h&gt; void tongji(char a[20]);//对tongji函数的声明; int main() { char a[20]; gets(a); tongji(a);//调用tongji函数; getchar(); getchar(); return 0; } void tongj...
统计此字符串中字母、数字、空格和其它字符的个数
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 只要结果,别输出什么提示信息。#include&lt;stdio.h&gt; int c=0,d=0,s=0,o=0; int f(char a[]); int main() { char a[30]; gets(a); f(a); printf("%d %d %d %d",c...
C++_统计字符串中英文字母、空格、数字和其它字符的个数
伪码: STATISTIC(letters, space, digit, others, c) 1. input(c) 2. letters&amp;lt;-0; space&amp;lt;-0; digit&amp;lt;-0; others&amp;lt;-0        //初始化变量值,letters-英文字母,space-空格,digit-数字,others-其他// 3. while ( c!=’\n’) ...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法