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++
0

7个回答

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

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

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

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

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

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

str[i]不是str[0]

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

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

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

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

0

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

0
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型...
控制用户输入字符的个数
代码为: fla素材下载,swf下载 1 2 3 4 5 6 7 8 9 10 in_txt.maxChars=10; in_txt.addEventListener("keyUp",chkNum); functio...
输入一行字符串,统计英文字母,数字和其他字符个数
/输入一行字符串,统计英文字母,数字和其他字符个数/ 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...
输入一行字符串,统计其英文字母,数字和其他字符个数。
急求~~
输入字符,统计个数
#include&lt;stdio.h&gt;#include&lt;math.h&gt;#include&lt;string.h&gt;int main(){char str[1000000];int num[30]={0}, t, i, j, k, a;while( gets( str ) ){t = strlen( str );...
《统计输入字符的个数》
#include void main() { int n=0; printf("input the string:\n"); while (getchar()!='\n') { n++; } printf("%d\n",n); }
1统计输入的字符串的字符个数
(1) 文本框: IDC_EDT_INPUT 统计按钮: IDC_BTN_COUNT 静态文本控件: IDC_EDT_OUTPUT (2) OnBnClickedBtnCount() void CMy1Dlg::OnBnClickedBtnCount() { // TODO: 在此添加控件通知处理程序代码 CString strInput; //取得文本框中输入
统计输入字符串中出现的字符个数
思路:将字符串转化为字符数组,存入map集合中(字符为key,出现次数为value),遍历key,如果key不存在则value置为1,若存在则value+1;
输入字符串统计每个字符出现的个数
题目:输入字符串统计每个字符出现的个数 过程: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 "<
统计字符串字符个数
#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]!=
VC统计字符个数,输入一段字符串,统计其个数
VC统计字符个数,输入一段字符串,统计其个数
输入一行字符,统计其中字母数字空格和其他字符的个数
输入一行字符,统计其中字母数字空格和其他字符的个数?输入输出都在函数中写好,直接调用即可。比较值得借鉴的是这种方式中的获取输入的方式,通过while循环和getchar()函数的配合使用户能不断的输入字符直至回车键。
输入一行字符,统计字母,数字,空格,其他的个数
/* 输入一行字符,统计字母,数字,空格,其他的个数 */ #include #include   //system("cls");清屏操作需要包含头文件 void main() {  char ch='y';//给字符ch赋初值,进入第一次循环  while(ch=='y')//判断接受的这个字符是否为'y'  { system("cls");//清屏操作   while(
输入一串字符,判断英文字母,空格,数字及其他字符的个数
//输入一串字符,判断英文字母,空格,数字及其他字符的个数 public static void checkString(String str){ int countNum = 0; int countStr = 0; int countKG = 0; int countElse = 0; int countHZ = 0; char[] c = str.toCharArray();
统计输入字符串的个数
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestString { private static Scanner input; public static void main(String[] args) { input
统计字母,数字,空格,及其他字符的个数
#include&lt;stdio.h&gt; #include&lt;ctype.h&gt; void show() { int blank=0; int digit=0; int alpha=0; int other=0; char ch; while((ch=getchar())!=’$’) { if(isalpha(ch)) { alpha++; } else if(isdigit(ch)...
统计字母、空格、数字和其他字符的个数。
#include int main() { char c; int letters=0,space=0,digit=0,others=0; while((c=getchar())!='\n') { if(c>='a'&&c='A'&&c<='Z') letters++; else if(c==' ') space++; else if(c>='0'&&c<='9') digit++;
统计英文字母、空格、数字和其他字符的个数
#include int main() { char c; int letters = 0, space = 0, digit = 0, other = 0; printf("请输入一行字符:\n"); while((c = getchar())!='\n') { if (c >= 'a' && c = 'A' && c <= 'Z') letters++;
统计字符串中的字母,数字,空格和其他字符的个数---指针
// 编写一个函数用实参传来一个字符串,统计此字符串中字母,数字,空格,和其他的字符的个数,在主函数中输入字符串,以及输出上述结果; #include #include int main() { int l=0,n=0,p=0,o=0; void tj(char s[],int*,int*,int*,int*); char s[80]; gets(s);
统计一行字符串中的英文字母,空格,数字和其他字符的个数
#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') ...
统计字符串内英文、数字、空格及其他字符的个数
题目描述 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数 输入描述: 输入一行字符串,可以有空格 输出描述: 统计其中英文字符,空格字符,数字字符,其他字符的个数 算法实现:package com.husweijishi.suanfa;import java.util.Scanner; import java.util.regex.Matcher; import jav
统计字符串中字母,数字,空格和其他字符的个数。
#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...
统计一个字符串中数字、字母、空格和其他字符的个数
用字符比较和正则表达式分别统计一个字符串中字母、数字、空格和其他字符出现的次数
键盘输入字符串统计英文、空格、数字、和其他字符个数
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分别统计英文、空格、数字、和其他字...
统计出字符串中字母、空格、数字和其他字符的个数
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...
判断一个字符串中数字,字符,空格和其他字符的个数
public static void main(String[] args) {   String s="ad 90 s-=-3 aA";   StringBuilder sb=new StringBuilder(s);   int isNum=0;   int isChar=0;   int isElse=0;   int isEmpty=0;   for(int i=0;i
输入一段字符,判断字符串中字母的个数,数字的个数和其他字符个数
/* * 输入一段字符,判断字符串中字母的个数,数字的个数和其他字符个数(参考ascii表) * */ public static void main(String[] args) { System.out.println("请输入一段字符串:"); Scanner scan = new Scanner(System.in); String str = scan.next
【华为oj】输入一行字符,分别统计,英文字符,空格字符,数字字符,和其他字符的个数
问题描述:输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。     /**      * 统计出英文字母字符的个数。      *       * @param str 需要输入的字符串      * @return 英文字母的个数      */     public static int getEnglishCharCount(String str)    
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
统计输入的某个字符的个数
统计输入的某个字符的个数,并输出结果,比如说A
汇编语言统计输入字符个数
汇编语言统计输入字符个数,分别输出数字,字母,其他字的个数.
实时统计输入字符个数
JavaScript中经常要实时统计输入的个数,用onkeyup只对输入英文有效果,输入中文时没办法实时统计;而使用onchange,也只能是等输入框失去焦点才能统计,并不能实时。下面的方法就可以实现实时统计: &lt;div id="msg"&gt;&lt;/div&gt; &lt;input id='txt' value="" /&gt; &lt;script...
统计输入的字符类别与个数
#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++;} ...
C语言:输入一行字符串统计出英文字母,空格,数字和其他字符的个数
题目要求 输入一行字符串统计出英文字母,空格,数字和其他字符的个数。 程序分析 要统计英文字母,空格,数字和其他字符的个数,则要遇到他们加一。 核心代码如下: while ((c=getchar())!='\n') { if ((c &amp;gt;= 'a' &amp;amp;&amp;amp; c &amp;lt;= 'z')||(c &amp;gt;= 'A' &amp;amp;&amp;amp; c &amp;lt;= 'Z')) { ...
统计输入字符个数的问题!
总共可以输入30个字。已经输入aaa个字rnrnrnrn怎样才可以得到aaa呢??
判断输入的字符串中数字,大写字符,小写,其他字符,英文字符的个数
代码: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!了,请问错在哪里
输入一行字符,统计指定字符的个数。
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程序不对。。。
相关热词 c# 线程顺序 c#昨天当前时间 c# 多进程 锁 c#mysql图片存取 c# ocx 委托事件 c# 读取类的属性和值 c# out 使用限制 c#获取url的id c#怎么进行分页查询 c# update 集合