C++从一个文件读取字符串,把多空格改成单空格,并写入另一个文件
发布网友
发布时间:2022-04-11 22:07
我来回答
共2个回答
热心网友
时间:2022-04-11 23:37
fout<<a;#include <iostream>
#include <fstream>
using namespace std;
const int N = 81;
void DeleteExtraSpaces(char *s) {
char *q,*p;
for(p = s; *p; p++)
if((*p == ' ') && (*(p + 1) == ' ')) {
for(q = p + 1; *q = *(q + 1); ++q);
--p;
}
}
int main() {
char line[N + 1];
ifstream fin;
ofstream fout;
fout.open("11-1(1).txt");
fin.open("11-1.txt");
while(fin.getline(line,N)) {
DeleteExtraSpaces(line);
cout << line << endl;
fout << line << endl;
}
fin.close();
fout.close();
return 0;
}追问for(p = s; *p; p++)
for(q = p + 1; *q = *(q + 1); ++q);
麻烦解释下这两句
追答for(p = s; *p; p++): 从s的第一个字符开始检查,如果*p的内容为'\0'则结束循环,否则继续。
for(q = p + 1; *q = *(q + 1); ++q) : 如果有连续2个个空格,则从第二个空格开始用后续的字符进行覆盖,直到复制到'\0'。
热心网友
时间:2022-04-12 00:55
""替换''吧