C++,哪位大侠帮忙把下面这个程序每行注释下,谢谢!

#include<iostream>#include<fstream>usingnamespacestdvoidconvert(char*str){while(*str!... #include <iostream>
#include <fstream>
using namespace std
void convert(char *str)
{
while (*str != '\0') {
if (*str >= 'a' && *str <= 'z')
*str += 'A' - 'a';
else if (*str >= 'A' && *str <= 'Z')
*str += 'a' - 'A';

++str;
}
}

int main()
{
char buf[1024];
FILE *s = fopen("src.txt", "rt");
FILE *d = fopen("dest.txt", "wt");
if (s == NULL || d == NULL) {
printf("open file error\n");
return -1;
}

while (fgets(buf, 1024, s) != NULL) {
convert(buf);
fputs(buf, d);
}

fclose(s);
fclose(d);
}
从一个文本文件读取正文,将其中的小写字母转化成大写字母,大写字母转换成小 写字母,其他字符不变,然后输出到另一个文本文件中保存。
展开
 我来答
十米若狂忆15
2012-07-04 · TA获得超过138个赞
知道答主
回答量:190
采纳率:100%
帮助的人:79.5万
展开全部
#include <iostream>
#include <fstream>
using namespace std;//这里你少了一个分号,这是引用STL命名空间
void convert(char *str)//函数名,参数是字符串指针
{
while (*str != '\0') {//当指针没有指向字符串结尾时继续循环,UTF8/UTF32字符串结尾不是\0,因此这个方法在字符串存在中文时可能出错。
if (*str >= 'a' && *str <= 'z')//如果指针当前指向的字符是小写字符
*str += 'A' - 'a';//利用ASCII差值转换
else if (*str >= 'A' && *str <= 'Z')//如果指针当前指向的字符是大写字符
*str += 'a' - 'A';//利用ASCII码差值转换

++str;//指针向后移动一位,指向下一个字符。
}
}

int main()//主函数
{
char buf[1024];//定义一个字符数组
FILE *s = fopen("src.txt", "rt");//打开指定的文件,输入字符流
FILE *d = fopen("dest.txt", "wt");//打开指定的文件,输出字符流
if (s == NULL || d == NULL) {//如果打开文件失败
printf("open file error\n");//提示打开失败
return -1;//退出程序
}

while (fgets(buf, 1024, s) != NULL) {//读文件
convert(buf);//执行转换
fputs(buf, d);//写文件
}

fclose(s);//销毁文件指针
fclose(d);//同上。
}
zh19861112
2012-07-04 · TA获得超过112个赞
知道小有建树答主
回答量:81
采纳率:0%
帮助的人:39.2万
展开全部
#include <iostream>
#include <fstream>
using namespace std;//别漏了分号

void convert(char *str)//函数,参数为一个指针,其指向一个char字符串(数组)
{
while (*str != '\0') //传入参数(指针指向的内容(的首个元素))如果不为空,此处用于做结束判断,如果运行到传入字符串结尾则退出
{
if (*str >= 'a' && *str <= 'z')//传入参数>=‘a’、<='z',小写字母
*str += 'A' - 'a';//指针当前指向内容加上(‘A’-‘a’的差值),如:a+(A-a) = A,即转换为大写字母
else if (*str >= 'A' && *str <= 'Z')//大写字母
*str += 'a' - 'A';//转换为小写字母

++str;//指针加法,将指针指向传入参数的下一个字母
}
}

int main()
{
char buf[1024];
FILE *s = fopen("src.txt", "rt");
FILE *d = fopen("dest.txt", "wt");
if (s == NULL || d == NULL) {
printf("open file error\n");
return -1;
}

while (fgets(buf, 1024, s) != NULL) {
convert(buf);
fputs(buf, d);
}

fclose(s);
fclose(d);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llol63
2012-07-04
知道答主
回答量:4
采纳率:0%
帮助的人:3.4万
展开全部
#include <iostream>
#include <fstream> //文件操作需要的头文件
using namespace std
void convert(char *str) //该函数就是把大写变小写 小写变大写
{
while (*str != '\0') { //判断字符串是否结束
if (*str >= 'a' && *str <= 'z') //判断是否是小写字符
*str += 'A' - 'a';
else if (*str >= 'A' && *str <= 'Z') //判断是否是大写字符
*str += 'a' - 'A';

++str;
}
}

int main()
{
char buf[1024];
FILE *s = fopen("src.txt", "rt"); //只读打开一个文本文件,只允许读数据
FILE *d = fopen("dest.txt", "wt"); //只写打开或建立一个文本文件,只允许写数据
if (s == NULL || d == NULL) { //文件打开失败 输出错误 结束程序
printf("open file error\n");
return -1;
}

while (fgets(buf, 1024, s) != NULL) { //从文件指针s中读取1023个字符,存到以buf为起始地 址的空间里,直到读完一行,如果成功则返回s的指针,否则返回NULL。
convert(buf); //调用convert函数 进行转换
fputs(buf, d); //把buf中的内容写入到文件指针d指向的文件中
}

fclose(s); //关闭文件
fclose(d);
}
追问
啊 谢谢大侠啦啊  主函数中的if (s == NULL || d == NULL)是什么意思?  NULL是什么意思啊 ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qhnjud
2012-07-04
知道答主
回答量:47
采纳率:33%
帮助的人:12.8万
展开全部
同学 这个程序的意思都知道了 还要问每句代码的意思
更多追问追答
追问
啊 这个也是我找人编的 我得画程序设计图 所以。。。
追答
那也不用知道每句代码的意思 你只要知道 程序每个模块的作用 至于细节方面你可以自己加工
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fantasy9874
2012-07-04 · TA获得超过1462个赞
知道小有建树答主
回答量:2382
采纳率:25%
帮助的人:669万
展开全部
不懂!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式