C语言程序代码解读
发布网友
发布时间:2022-04-20 10:27
我来回答
共2个回答
热心网友
时间:2023-09-05 07:29
不难理解,整个算法就是:先找p字串开头的空格,全部忽略掉,然后将所有非空字符复制到q,当再次遇到空格时,将所有的空格压缩成一个'_',然后再将所有非空字符复制到q,这样循环直至p字串处理完毕。具体解释如下。
while ( *p!='\0' )
{
for (; *p==' '; p++ )
; //这个for循环执行空语句,作用是看到p字串中有空格就跳过。
if ( q>b && *p!='\0' ) /*?*/ // 之所以有q>b,为的是忽略p字串中开头的所有空格。
*(q++) = '_'; //当p字串还没有结束,而且不是q字串的第一个字符时,q字串加一个'_',并下移一位。
for ( ; *p!=' ' && *p!='\0'; p++ ) /*?*/ //这里容易理解,当p中不是空格和字符串结束符时循环
*(q++) = *p; //对所有p字串中的非空格和字符'\0',均复制到q中。
}
*q = '\0'; //给q字串加个结束符。
热心网友
时间:2023-09-05 07:29
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void main()
{
char id[10], name[10], score[5];
FILE *outfile;
ifstream in("score.dat");
outfile = fopen("new_score.dat", "w");
while(!in.eof())
{
in >> id >> name >> score;
fprintf(outfile, "%-15s%-15s%-15s\n", name, id, score);
}
in.close();
}
输出文件格式为:
Name #ID Score
Macgrady 301101 80
Donken 301102 90
Kobe 301103 88
Jordan 301104 91
James 301105 89
James 301105 89
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
你的串号我已经记下,采纳后我会帮你制作