用C写这样一段程序

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:29:37
想用c写这样一段程序

输入一段C程序
比如:printf("%d",s) /*This Is A Putout*/
将注释里的小写变为大写,大写变为小写 并且把/*..........*/改变为//.........
例子的结果为:printf("%d",s) //tHIS iS a pUTOUT
请问怎么实现
我只会用VC的flex脚本实现,至于C想了半天也没做出来
请大家指教了
谢谢各位

//只适用于输入一段后面只有注释的程序
#include<stdio.h>
#include<string.h>
#define max 100
void change(char *s)
{
int i=0;
while(!(s[i]=='/'&&s[i+1]=='*'))putchar(s[i++]);//判断是否进入注释
while(s[i]!='\0')
{
if(s[i]=='*')
{
if(s[i-1]&&s[i-1]=='/')putchar('/');
if(s[i+1]=='/')i++;
}//注释开始和结束的判断
else if(s[i]>96&&s[i]<123)putchar(s[i]-32);//小写转大写
else if(s[i]<90&&s[i]>64)putchar(s[i]+32);//大写转小写
else putchar(s[i]);
i++;
}
}
void main()
{
char s[max];
printf("输入一段程序:\n");
gets(s);
printf("注释转换后程序为:\n");
change(s);
printf("\n");
}

判断它的ACSII码,如果在97以上,则说明它是小写字母,这时候用strupr('字符串')来转换,如果是大写字母,则用strlwr('字符串')来转换,至于转换注释,也非常简单。不过我是比较擅长Delphi编程。

如果你需要,我可以用其它编程语言帮你编写一个EXE文件处理你的要求!