帮忙把C++改成C语言程序!

#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<conio.h>
struct KeyWord{
char Keyword[20];
int count;
};

KeyWord KeywordTable[]=
{
{"else",0},{"switch",0},{"if",0},{"do",0},{"while",0},{"case",0}
};

int SeqSearch(KeyWord *tab,int n,char *word)
{
int i;
for(i=0;i<n;i++,tab++)
if(strcmp(word,tab->Keyword)==0)
return i;
return -1;
}

int Getword(ifstream &fin,char w[])
{
char c;
int i=0;
while(fin.get(c)&&!isalpha(c));
if(fin.eof())
return 0;
w[i++]=c;
while(fin.get(c)&&(isalpha(c)||isdigit(c)))
w[i++]=c;
w[i]='\0';
return 1;
}

void main(void)
{
const int MAXWORD=50;
const int NKEYWORDS=sizeof(KeywordTable)/sizeof(KeyWord);
int n;
char word[MAXWORD],c;
ifstream fin;
fin.open("prg2_5.cpp",ios::in | ios::nocreate);//prg2_5.cpp就是统计本文件
if(!fin)
{
cerr<<"Could not open file'prg2_5.cpp'"<<endl;
exit(1);
}
while(Getword(fin,word))
if((n=SeqSearch(KeywordTable,NKEYWORDS,word))!=-1)
KeywordTable[n].count++;
for(n=0;n<NKEYWORDS;n++)
if(KeywordTable[n].count>0)
{
cout<<KeywordTable[n].count;
cout<<" "<<KeywordTable[n].Keyword<<endl;
}
fin.close();
getch();
}

总结下,把C++改成C如下即可:
1)改头文件:把#include<c*>或者#include<*>改成#include<*.h>,比如,把#include<cmath>改成#include<math.h、把#include<iostream>改成#include<iostream.h>。如果有using namespace std;把它去掉。

2)该输入输出流:cout改为printf("%*",x);cin改成scanf("%*",&x),比如输入输出一个整数:
cin>>x;scanf("%d",&x);
cout<<x;printf("%d",x);
换行:cout<<endl;或者cout<<"\n"改成printf("\n");

注:如果是把C改成C++,反过来即可。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-04-21
你自己检查下算法:

#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>

typedef struct KeyWord{
char Keyword[20];
int count;
}KeyWord;

KeyWord KeywordTable[]=
{
{"else",0},{"switch",0},{"if",0},{"do",0},{"while",0},{"case",0}
};

int SeqSearch(KeyWord *tab,int n,char *word)
{
int i;
for(i=0;i<n;i++,tab++)
if(strcmp(word,tab->Keyword)==0)
return i;
return -1;
}

int Getword(FILE *fp,char w[])
{
char c;
int i=0;
while((c=fgetc(fp)) &&!isalpha(c))
{
if(feof(fp))
{
return 0;
}
}

w[i++]=c;
while((c = fgetc(fp)) &&(isalpha(c)||isdigit(c)))
{
w[i++]=c;
}

w[i]='\0';

return 1;
}

#define MAXWORD 50
void main(void)
{
const int NKEYWORDS=sizeof(KeywordTable)/sizeof(KeyWord);
int n;
char word[MAXWORD];
FILE *fin;

fin = fopen(__FILE__,"r");//prg2_5.cpp就是??本文件
if(!fin)
{
printf("Could not open file'prg2_5.cpp'");
exit(1);
}

while(Getword(fin,word))
{
if((n=SeqSearch(KeywordTable,NKEYWORDS,word))!=-1)
KeywordTable[n].count++;
}

for(n=0;n<NKEYWORDS;n++)
{
if(KeywordTable[n].count>0)
{
printf("%d",KeywordTable[n].count);
printf(" %s",KeywordTable[n].Keyword);
}
}
fclose(fin);
getch();
}本回答被提问者采纳
第2个回答  2009-05-26
cout 改为prinft

帮忙把C++改成C语言程序!
1)改头文件:把#include<c*>或者#include<*>改成#include<*.h>,比如,把#include<cmath>改成#include<math.h、把#include<iostream>改成#include<iostream.h>。如果有using namespace std;把它去掉。2)该输入输出流:cout改为printf("%*",x);cin改成scanf("%*",&x),比如输入输出一个...

如何把CPP源程序改写成C语言?
1. 将面向对象特性去除:理解源代码逻辑后逐行转换,适合类数较少的情况,但耗时且可能出错,尤其在大型项目中难以全面理解。2. 用C实现类的功能:针对类数量多的情况,可逐个类进行转换,使用结构体模拟类,尽管可能对程序功能不熟悉,但错误率低且无需深入理解源代码逻辑。在C中处理C++特性,如数据成...

在编程中,如何将c++改成c?
在编程中,将c++改成c:C语言程序其实就是C++程序,因为C++兼容了C。C++中输入语句用cin代替scanf,cout代替printf,但是C++也识别scanf和printf主要区别是C++扩展了C,有面向对象。若要改,可以:头文件#include"stdio.h"->#include<iostream>usingnamespace。C++程序的构成和书写形式:1.一个C++程序可以...

将此c++代码转换为C语言的代码:
cout<<"所输入的b矩阵为"<<endl;改成 printf("所输入的b矩阵为\\n");cin 改成 scanf 如 cin>>m;改成 scanf("%d",&m);

如何将C++改成C
1、C++兼容C语言,但C语言不可能兼容C++,所以,C++代码直接转是转不了C的。2、只能从逻辑上,对C++的许多语法进行代码上的重新实现。比如将对象转换为结构体,将对象封装的函数修改为独立函数,增加对象参数。将重载去掉,而是根据需要调用非重载的不同名的函数。总之来说,硬要将C++转为C实现的话,...

将一个C++程序代码转化成C语言程序代码
include<stdio.h> include<math.h> double lnchoose(int,int);int main(){ int m,n;double zuheshu;printf("本程序用来计算组合数 C(n,m),请输入n和m(n>=m)");scanf("%d %d",&m,&n);zuheshu=exp(lnchoose(n\/1.0, m\/1.0));printf(" C(%d,%d)的值为:%d\\n",zuheshu...

怎么将c++语言编写的代码改成C语言的代码
可以将其功能用c语言实现。当然如果是一类c++的项目,比如某一个游戏,你要把c++变c可以把其依赖的库文件,以及底层涉及到c++相关语法变成c语言的就行。https:请删除\/\/www.cnblogs.com\/tuhooo\/p\/7203314请删除.html 这是网址,这个写的挺详细的。另外各家的标c所遵循的标准也有差别。祝你成功。

c++类怎么转化为C语言的结构体啊?求详解
具体操作~ 楼上已经说的很清楚了 把C++类里面的成员函数删除,把class改成struct,然后把函数的实现都给删掉,就这样啊 把private、protected、public 这些关键字给删掉

c++中的程序怎么改成c语言,如cout<<">>>";跟cout<<cha[i]<<"-->...
cout<<">>>"; 变为c语言为 printf(">>>");cout<<cha[i]<<"-->"hc[i]<<end1;这句话正确的写法应该是下面的 cout<<cha[i]<<"-->"<<hc[i]<<endl;变为c为 printf("%c-->%c\\n",cha[i],hc[i]);其实你可以把c++中的 cout 看成是c中printf endl 看成是 \\n 不...

怎么把C++代码转化为C语言
}SeqStack2;void InitStack(SeqStack1 *s){ s->top= -1;}void Push(SeqStack1 *s,StackElementTypeoptr x){ s->top++; s->elem[s->top]=x;}void Gettop(SeqStack1 s,StackElementTypeoptr *e){ *e = s->elem[s->top];}void Pop(SeqStack1 *s,StackElementTypeoptr ...

相似回答