一、實訓步驟、方法與要求
編寫一個程序實現一些字符串處理功能
1. 編寫一個函數,讀入一段文本,可以用函數分別統計字母a和b在文本中出現的次數。
2. 編寫一個函數,由用戶輸入一段文本,使用這個函數可以統計在此文本中出現了多少個單詞。
3. 編寫一個函數,當用戶輸入一個單詞時,可以用函數統計這個單詞在程序中讀入的一段文本中出現的總次數
4. 編寫程序,將以上三個功能做成選項單,可以通過在鍵盤上輸入指定字符從而選擇相應的功能。
二、 評分方法
1.是否能正確編寫C程序予以實現各題要求(40分)
2.項目報告中,流程圖和算法描述(25分),知識點描述(15分),難點及解決辦法(10分)
3.學習總結(10分)
各位大神幫幫忙。。不要太復雜的。比如第二題書上就有一個類似的:
#include<stdio.h>
void main()
{
char string[81];
int i,num=0,word=0;
char c;
gets(string); /*讀入一個字符串*/
for (i=0;(c=string[i])!='\0';i++) /*從第一個字符起,到最後一個字符*/
if(c==' ') word=0; /*如果當前字符是空格,則使word置0*/
else if(word==0) /*若當前字符不是空格,而且前一字符是空格*/
{word=1; /*使word置1*/
num++; /*使num加1*/
}
printf("There are %dwords in this line.\n",num); /*輸出num*/
}
請大神們也用類似的程序來解答吧。
好,我等你。如果對我的提問有疑惑可以加我QQ646870335.明天就要完成這份報告了。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX 20
void Sum_letter();
void All_word();
void Sum_word_appear();
void Sum_letter(){
char ch;
int array[2]={0};
printf("The letter: ");
scanf("%c",&ch);
FILE *fp;
if((fp=fopen("d:test.txt","r")) == NULL){
printf("No file\n");
}
else{
while(!feof(fp)){
fread(&ch,sizeof(char),1,fp);
if(ch == 'a' || ch == 'b'){
++array[ch-'a'];
}
}
}
printf("\"a\" appears : %d\n",array[0]);
printf("\"b\" appears : %d\n",array[1]);
fclose(fp);
}
void Sum_word_appear(){
char array[MAX],temp[MAX];
char ch;
int sum=0,i=0;
printf("The word: ");
scanf("%s",array);
FILE *fp;
if((fp=fopen("d:test.txt","r")) == NULL){
printf("No file\n");
}
else{
while(!feof(fp)){
fread(&ch,sizeof(char),1,fp);
if( !isspace(ch) && !ispunct(ch)){
temp[i++]=ch;
}
else{
temp[i]='\0';
if(strcmp(temp,array) == 0){
++sum;
}
memset(temp,NULL,MAX);
i=0;
}
}
}
printf("%s appears is %d\n",array,sum);
fclose(fp);
}
void All_word(){
char ch;
int sum=0;
FILE *fp;
if((fp=fopen("d:test.txt","r")) == NULL){
printf("No file\n");
}
else{
while(!feof(fp)){
fread(&ch,sizeof(char),1,fp);
if(isspace(ch) || ispunct(ch)){
++sum;
}
}
}
printf("The all words is: %d\n",sum-1);
}
int main(){
bool tag=true;
char ch;
int Select=0;
FILE*fp;
if((fp=fopen("d:test.txt","w+")) == NULL){
printf("No file;\n");
}
else{
printf("Input the data: \n");
fflush(stdin);
while((ch=getchar()) != EOF){
fprintf(fp,"%c",ch);
}
}
fclose(fp);
while(tag){
printf("1、Sum letter appear\n");
printf("2、All word appear\n");
printf("3、Sum word appear\n");
printf("4、Quit\n\n");
printf("Select: ");
scanf("%d",&Select);
switch(Select){
case 1:
Sum_letter();
break;
case 2:
All_word();
break;
case 3:
Sum_word_appear();
break;
case 4:
printf("Quit\n");
tag=false;
break;
}
}
return 0;
}