编程C++ 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。。。

"#include
#include
#include
#include
#include
typedef
char
TreeItem;
struct
a
{
char
ch[256];
}work[256];
typedef
struct
btnode
*btlink
;
typedef
struct
btnode
{
TreeItem
*
WORD;//字符串
指针
btlink
left
,
right
,
parent
;
int
count;
}
BtNode
;
typedef
struct
bstree
*Tree
;
typedef
struct
bstree
{
btlink
root
;
//
根结点指针
}BSTree;
Tree
T;
Tree
Init()
{
T
=
(Tree)malloc(sizeof(T));
T->root
=
0
;
return
T
;
}
btlink
NewNode(char
*
x)
{
btlink
p;
if((p=(btlink)malloc(sizeof(BtNode)))==0)
{
cout<<"开辟失败!"<<endl;
exit(0);
}
p->WORD=x;
p->left=0;
p->right=0;
p->parent=0;
p->count=1;
return
p;
}
int
less(char
*
x,char
*
y)
{
return
(strcmp(x,y)<0);//x<y
}
void
Search(TreeItem
*x,
btlink
p
)
{
while(p)
{
if(
less(x,p->WORD)
)
p
=
p->left
;
else
if(
less(p->WORD,x))
p=p->right;
else
break
;
}
if(p){
cout<<"有找到"<<x<<endl;
cout<WORD<<"有"<count<<"个"<<endl;;
}
else
cout<<"木有找到"<<endl;
}
void
InOrder(btlink
t)
{
if(t)
{
InOrder(t->left);
cout<<"字符串:"<WORD<<endl;
cout<<"个数:"<count<<endl;
InOrder(t->right);
}
}
void
Insert(char
*x
,Tree
T)
{
btlink
p,r,pp=NULL
;
p
=
T->root
;
while(
p
)
{
pp
=
p
;
//
保存父结点
//
通过和根结点比较,选取要搜索的子树
if(less(x,p->WORD))
p
=
p->left
;
else
if(less(p->WORD,x))
p
=
p->right
;
else
{
p->count++;
return
;//
元素x已存在于字典中
}
}
r
=
NewNode(x);
if(T->root)
{
if(less(x,pp->WORD))
pp->left
=
r
;
else
pp->right
=
r
;
r->parent
=
pp
;
}
else
T->root
=
r
;
//
插入空树
}
void
open(Tree
T)
{
char
seps[]="
,.\t\n;?:";
int
k=0;
char
*taken;
char
filename[20];
FILE
*fp;
cout<<"输入你所要打开(OPEN)的文件名:"<<endl;
cin>>filename;
cout<<endl;
if((fp=fopen(filename,"r"))==NULL)
{
printf("cannot
open
file!\n");
exit(0);
}
while(!(feof(fp)))
{
fscanf(fp,"%s",work[k++].ch);//这里还真不能用char
str【256】
taken=strtok(work[k-1].ch,seps);
while(taken!=NULL)
{
Insert(taken,T);
taken=strtok(NULL,seps);
}
}
fclose(fp);
}
void
add()
{
char
filename[20];
FILE
*fp;
cout<<"输入你所要打开(OPEN)的文件名:"<<endl;
cin>>filename;
cout<<endl;
if((fp=fopen(filename,"a"))==NULL)
//追加文本
{
printf("cannot
open
file!\n");
exit(0);
}
cout<<
"输入要增加的内容
以@为结束"<<endl;
char
ch;
getchar();
ch=getchar();
while(ch!='@')
{
fputc(ch,fp);
ch=getchar();
}
fclose(fp);
}
void
find(Tree
T)
{
cout<<"输入要查找的内容:"<<endl;
char
WORD[256];
gets(WORD);
cout<<WORD<<endl;
char
*
w;
w=WORD;
btlink
p=T->root;
Search(w,p);
}
void
main()
{
btlink
t;
Tree
T;
btlink
p;
loop:cout<<"功能选取:"<<endl;
cout<<"1
打开(OPEN)文件"<<endl;
cout<<"2
中序显示"<<endl;
cout<<"3
增加文本内容"<<endl;
cout<<"4
查找"<<endl;
int
cs;
cin>>cs;
switch(cs)
{
case
1:
T=Init();
open(T);
goto
loop;
case
2:
p=T->root
;
InOrder(p);
goto
loop;
case
3:
add();
goto
loop;
case
4:
find(T);
goto
loop;
}
}
前提
你要有建个txt的文档
例如
a.txt就可以
我开始做了挺久的"

#include "stdio.h"
void main()
{
char c;
int english=0,number=0,space=0,others=0;
/*定义字母 数字 空格及其他变量并给它们赋初值*/
printf("输出一串字符包含空格,数字,字母及其它:");
while((c=getchar())!='\n') /*用getchar函数输出一串字符*/
{
if (c>='A'&&c<='Z'||c>='a'&&c<='z')
english++;
else if (c>='0'&&c<='9')
number++;
else if (c==' ')
space++;
else
others++;
}
printf("字母有%d个 数字有%d个 空格有%d个 其它有%d个",english,number,space,others);
}

#include "stdio.h"
void main()
{
char c;
int english=0,number=0,space=0,others=0;
/*定义字母 数字 空格及其他变量并给它们赋初值*/
printf("输出一串字符包含空格,数字,字母及其它:");
while((c=getchar())!='\n') /*用getchar函数输出一串字符*/
{
if (c>='A'&&c<='Z'||c>='a'&&c<='z')
english++;
else if (c>='0'&&c<='9')
number++;
else if (c==' ')
space++;
else
others++;
}
printf("字母有%d个 数字有%d个 空格有%d个 其它有%d个",english,number,space,others);

直接用string类就行。

class MyClass
{
//统计str中英文字母数和空格数及总字数
public static void Static(string str, out int n_letter, out int n_num, out n)
{
n_letter = 0;
n_num = 0;
n=str.Length; //总字数
char ch;
for (int i = 0; i < str.Length; i++)
{
ch=str[i];
if (char.IsLetter(ch))
//字母数
if (ch==' ')
{
n_num++; //空格数
}
}

}

//统计某一字符dest在文章str中出现的次数,并输出该次数。
public static void Find(string str, string dest, out int n)
{
int i;
n = 0;
for (i = 0; i < str.Length; i++)
{
i=str.IndexOf(dest, i); //查找dest
if (i == -1)
{
break; //没有一个dest,结束循环
}
else
{
n++;
}
}
}
}

用C++编程输入一页文字,程序可以统计出文字,数字,空格的个数~

直接用string类就行。

class MyClass
{
//统计str中英文字母数和空格数及总字数
public static void Static(string str, out int n_letter, out int n_num, out n)
{
n_letter = 0;
n_num = 0;
n=str.Length; //总字数
char ch;
for (int i = 0; i < str.Length; i++)
{
ch=str[i];
if (char.IsLetter(ch))
{ n_letter++; } //字母数
if (ch==' ')
{
n_num++; //空格数
}
}

}

//统计某一字符dest在文章str中出现的次数,并输出该次数。
public static void Find(string str, string dest, out int n)
{
int i;
n = 0;
for (i = 0; i < str.Length; i++)
{
i=str.IndexOf(dest, i); //查找dest
if (i == -1)
{
break; //没有一个dest,结束循环
}
else
{
n++;
}
}
}
}


给你实现了要求得功能函数,由于对你问题得一页得概念不理解,用一字符指针代替文章来操作,约定以'\0'来结束,下面所有得函数都是接受1个字符指针来进行操作,参数传入传出参照微软格式.
----------------------------------
/*
统计文章*pt中英文字母得数量*pNum 空格数*pNumSpace,总字数*pNumAll
返回1成功,0失败
*/
int Statistic(char* pt,int *pNum,int *pNumSpace,int *pNumAll)
{
char* pcur=pt;
*pNum=*pNumSpace=*pNumAll=0;
while(*pcur!='\0')
{
if((*pcur>0x40&&*pcur<0x5B)||(*pcur>0x60&&*pcur<0x7B))*pNum++;
if(*pcur==0x20)*pNumSpace++;
pNumAll++;
pcur++;
}
return 1;
}
/*
统计某一字符串*p在文章*pt中出现得次数,
返回次数
*/
int GetTime(char* pt,char* p)
{
char *a=pt,*temp=a,*b=p;
int num,isok=0;
while(*a!='\0')
{
while(*b!='\0')
{
temp=a;
b=p;
if(*(temp++)==*(b++))
isok=1;
else
isok=0;
}
if(isok)num++;
a++;
}
return num;
}
/*
删除*pt中第一次出现的字串*p
成功返回1,否则0
*/
int DelString(*pt,*p)
{
char *a=pt,*temp=a,*b=p;
int num,isok=0;
while(*a!='\0')
{
temp=a;
b=p;
while(*b!='\0')
{
if(*(temp++)==*(b++))
isok=1;
else
isok=0;;
}
if(isok)
{
while(*temp!='\0'&&(*(a++)=*(temp++))
*a='\0';
return 1;
}
a++;
}

return 0;
}

#13828584807# 如何用C++向一个已经运行的程序的编辑框里输入指定内容 - ******
#扈败# 如果只是为了输入方便,不如不编程,用宏软件来实现.如果是为了写外挂之类的程序,则用勾子.勾子我弄不好,请自己翻阅一个月资料先.

#13828584807# VC++编写一个文字输入框 - ******
#扈败# 整个项目可以是文档项目,聊天窗口就是一个对话框,设这个对话框的属性是嵌入式的就可以了.在对话框上放一个文本输入框,用来接收文字.一个按钮,点击按钮就触发接受文字并输出的事件.再放一个静态文本框,用来输出文字.

#13828584807# 怎么用V C++6.0编一个可以输入输出汉字的C语言程序啊 - ******
#扈败# 本来就无需设置啊 #include void main(){ char tst[255] cout>tst; cout

#13828584807# 在VC++环境下,用C语言编程实现输入汉字而屏蔽其他数字,字符的输入,例如:提示请输入姓名:如果输入汉字 - ******
#扈败# 主要思想是,汉字是两个字节组成,每个字节所对应的值实际上是负数,而对于键盘上的字符都为非负数,所以可以根i据这个判断,是否为汉字,下面写了个简单的程序,可以判断一个汉字还是字符,你可以加大字符串长度,可以整个字符串的...

#13828584807# 如何用C++做一个输入汉字得到机内码程序 - ******
#扈败# 我用C写的,不过差不多. 见代码: #include<stdio.h> void main() { int j; unsigned char name[2] = "却";//这里以 "却" 为例 for(j=0;j<2;j++) { printf("%x\n",name[j]);//输出的第一个是区码,第二个是位码 } } 查了下资料,发现ASCII编码与机内码是对应的, 看这个 http://www.atoi.cn/blog/archives/127-GB2312OECuAE-ZT.html

#13828584807# C++编程输入汉字问题 - ******
#扈败# 直接用string就可以了..#include#include using namespace std; int main() { string str; cin>>str; cout return 0; }

#13828584807# C++编程 浏览文本文件 - ******
#扈败# #include<iostream.h>//C++浏览文本文件#include<fstream.h>#include<stdio.h>#include<stdlib.h>#include <conio.h> //system(cls)清屏 void main() { int r; char c; fstream rs; char fn[15],buf[100]; cout<<"Input the rs'name:"; cin>>fn; //输入文件名 ...

#13828584807# C++高手帮我写下这个程序的注释 ******
#扈败# #include<iostream.h> #include<ctype.h> using namespace std; struct ca//链表的节点结构体 { char c; ca *next; }; //接收输入的字符 void Input(ca *L) { cout<<"输入一页文字(#标志结束): "<<endl; while((L->c=getchar())!='#')//循环检测字...

#13828584807# C++编程题:输入一段文字,其中包含一些非法的单词,请将这些非法单词删除或替换,然后输出过滤后的文字 - ******
#扈败# 提供一个思路 做一个合法单词库 把所有合法单词按照一定组织存起来 然后依次比较单词值 相同则合法,不同则删除 如果要替换的话,就查找最像的单词,这个算法就多了,你可以查一下

#13828584807# 用C++指针编写输入一行文字,找出其中大小写字母,空格,数字及其它字符各有多少? - ******
#扈败# #include using namespace std; int main() { //i初始化 int i=0,A=0,a=0,space=0,d=0,other=0; char *p,s[20]; while((s[i]=getchar())!='\n')i++;// gets(s);//这话用得干脆 p=s; while(*p!='\n')//不等于是这么判断的 { if(('A' else if(('a' else if(('0' else if(*p==' ')space++; else other++; p++; } cout return 0; }

为传递更多家电数码信息,若有事情请联系
数码大全网