当前位置:首页 » 编程语言 » c语言检索字数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言检索字数

发布时间: 2022-09-28 03:06:51

c语言中对一篇中文文章的字数,标点符号进行统计,代码怎么写

#include<stdio.h>
int main()
{
int i,t=0;
char s[100];
gets(s);
for(i=0;s[i]!=0;i++)
if(s[i]<0&&s[i+1]<0)
t++,i++;
printf("中文汉字以及中文标点数为%d",t);
return 0;
}

㈡ C语言编程的字数统计问题

在编辑框显示源代码的运行结果?

点击“开始统计”按钮??这个涉及对象设计了,,超出了C的编程了

㈢ c语言求统计字数的程序求解释

#include<stdio.h>
#define STOP '|'
#define bool int //VS是没有stdbool.h这个头文件的,bool类型自己定义
#define true 1
#define false 0

int main(void)
{
char c; //读入字符
char prev; //前一个读入字符
int n_chars=0L; //字符数
int n_lines=0; //行数
int n_words=0; //单词数
int p_lines=0; //不完整的行数
bool inword=false;//如果c 在一个单词中,则inword等于true

printf("Enter text to be analyzed(| to terminate):\n");
prev='\n'; //用于识别完整的行
while((c=getchar())!=STOP)
{
n_chars++;
if(c=='\n')
n_lines++; //统计行
if(!isspace(c)&&!inword)
{
inword=true;//开始一个新单词 这里我加了个分号 不然编译通不过
n_words++;
}
if(isspace(c)&&inword)
inword=false;//到达单词的尾部
prev=c; //保存字符数
}

if(prev!='\n')
p_lines=1;
printf("characters=%ld,words=%d,lines=%d.",n_chars,n_words,p_lines);
printf("partial lines=%d\n",p_lines);
return 0;
}
/*
我是在vs2010中编译通过的,头部几行代码改动了下
1. bool inword=false;这里定义时赋值是false,表示不再一个单词中。
if(!isspace(c)&&!inword)
{
inword=true;
n_words++;
}
if(isspace(c)&&inword)
inword=false;
prev=c;
假如字符c不是空格且不在一个单词中 那么把inword赋值为true表示开始统计这个新的单词,并把单词数加1
假如字符c是空格且在一个单词中那么说明字符c到达单词尾部了就将inword赋值为false表示现在的字符c不在一个单词中
2.bool inword=false; inword初值为false,!inword表示对inword取反,false取反当然就是true。你的理解是对的。
inword这个布尔逻辑变量是用来标识当前字符c是否在一个单词中。
3.
在while循环中有一行prev=c; 后面注释说是保存字符数,这里的作用是用来保存当前进行统计的字符,不是字符数。
在循环体外面
if(prev!='\n')
p_lines=1;
这里有用到prev,判断最后进行统计的那个字符是否是换行符。如果不是换行符那么说明是不完整的行则将p_lines赋值为1。
4.整个程序的算法其实是很简单的,程序看得多写得多了一下就可以明白。另外初学者学算法之前最好先学会调试,
会调试你就能明白算法的流程和原理。
*/

㈣ C语言统计字数

在你的基础上做了点修改, 以#结束
#include<stdio.h>

int main(void)
{
int nc=0; /* number of characters */
int nq=0; /* numerical quantities */
int bs=0; /* number of blank spaces */
char e;
int nw=0,word=0,nl=1;

printf("Text Analysis\n");
printf("please input the Text:\n");
e=getchar();
while (e!='#')
{
if((e>='a'&&e<='z')||(e>='A'&&e<='Z')) nc++;
if(e>='0'&&e<='9') nq++;
if(e==' ') bs++;
if(e=='\n') nl++;

if(e==' ') word=0;
else if(word==0)
{
word=1;
nw++;
}
if(e=='\n') word=0;
else if(word==0)
{
word=1;
nw++;
}
e=getchar();
}
printf("Number of Words:%d \n",nw);
printf("Number of Characters:%d\n",nc);
printf("Number of blank spaces:%d\n",bs);
printf("Number of numerical characters:%d\n",nq);
printf("Number of lines:%d \n",nl);

return 0;
}

㈤ 如何用C语言统计中文的字符数

C中的汉字用“机内码”,一个汉字两字节,最高位都是1,所以可以用下列代码求得一个字符串里汉字的个数:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char a[]="12我34们56都7是来自五a湖c四de海bfg";
int i,sum;
for(sum=i=0;a[i];i++)
if(a[i]<0) sum++;//最高位为1(负数)的是一个汉字的一半
printf("There are %d Chinese characters in this string.\n",sum/2);//输出汉字总数
return 0;
}

㈥ c语言 统计字数

#include <stdio.h>
void main()
{int i,num=0,cha=0,spa=0,oth=0;
while((i=getchar())!='\n')
{if(47<i&&i<58)num=num+1;
else if((64<i&&i<91)||(96<i&&i<123))cha=cha+1;
else if(i==32)spa=spa+1;
else oth=oth+1;
}
printf("num%d cha%d spa%d oth%d",num,cha,spa,oth);

}
我感觉这个答案比你的好,你按照自己的意思修改一下,别忘了谢谢我呀!呵呵!

㈦ c语言求统计字数的程序求解释

1,
1和2
可以归结为一个问题:
if(!isspace(c)&&!inword)
{
inword=true;
n_words++;
}
if(isspace(c)&&inword)
inword=false;
当来到某一个字符时,如果它不是空格,并且是单词的开始,那么我们就把单词数n_words>加上1,标志又多了一个新的单词。
!isspace(c)
用于判断它不是空格,!inword用于判断>它是单词的开头而不是单词中间的某个字母。
2,
prev='\n':
因为我们靠判断有几个'\n'来判断有多少行的,但是最后一行是以STOP结尾的,如果STOP前
面的一个字符不是'\n',那么我们就统计少了一行。这个prev=c就是保存结束之前最后一个
字符,也就是
|
前面的那个字符,
如果它不是'\n'的话.它就不是一个完整行。

㈧ c语言 字数统计

把for(;;)循环的右半个}放到程序最后就行了,你那个循环圈到输入的位置就变成了光输入不判断了

㈨ C语言 统计字符个数

#include<stdio.h>
void coun(char s[])
{
int i,m=0,n=0,p=0,d=0;
for(i=0;s[i]!='\0';i++)
{if(s[i]==' ')
p++;
else if((s[i]>='0')&&(s[i]<='9'))
m++;
else if((s[i]>='A')&&(s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
n++;
else d++;
}
printf("输入的字符串是:%s\n数字的个数:%d\n字母的个数:%d\n空格的个数:%d\n其它字符个数:%d\n",s,m,n,p,d);
}
int main()
{

char a[100];
gets(a);
coun(a);
system("pause");
return 0;
}