Respuesta :
Answer:
The code is implemented using C++
Explanation:
#include <cctype>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
void OpenFile(string fileName, ifstream& inFile);
void ReadFile(ifstream& inFile, string& fileData);
void ParseFile(string& fileData);
void OutputFile(string fileName, ofstream& outFile, string& fileData);
void main()
{
ifstream inFile;
ofstream outFile;
string fileData;
OpenFile("input.txt", inFile);
ReadFile(inFile, fileData);
ParseFile(fileData);
OutputFile("output.txt", outFile, fileData);
}
void OpenFile(string fileName, ifstream& inFile)
{
inFile.open(fileName);
if (inFile.fail())
{
cerr << "\nUnable to open file \"" << fileName << "\" for reading.\n";
exit(1);
}
}
void ReadFile(ifstream& inFile, string& fileData)
{
while (inFile.good())
{
fileData += inFile.get();
}
inFile.close();
//cout << endl << '[' << fileData[fileData.length()-1] << ']' << endl;
// Remove end of file character
fileData = fileData.substr( 0, fileData.length()-1 );
//cout << endl << '[' << fileData[fileData.length()-1] << ']' << endl;
//cout << endl << fileData << endl;
}
void ParseFile(string& fileData)
{
for(int i = 0; i < fileData.length(); i++)
{
if( fileData[i] == 'a' && isspace((int) fileData[i-1]) &&
( isspace((int) fileData[i+1]) || isalpha((int) fileData[i+1]) ) )
{
fileData[i] = 'A';
}
}
//cout << endl << fileData << endl;
}
void OutputFile(string fileName, ofstream& outFile, string& fileData)
{
outFile.open(fileName);
outFile << fileData;
outFile.close();
}
Answer:
void capitalize(){
int size_buffer = 100;
int i;
FILE * input;
FILE *output;
input = fopen("input.txt", "r");
output = fopen("output.txt", "w");
char * buffer;
buffer = (char*)calloc(size_buffer, sizeof(char))
while(fgets(buffer, size_buffer*sizeof(char), input) != NULL){
if(buffer[0] == 'a'){
for(i = 0; i < strlen(buffer); i++){
buffer[i] -= 32;
}
fprintf(output, "%s\n", buffer)
}
}
fclose(input);
fclose(output);
}
Explanation:
I am going to write a c code.
You can use the fgets command to read a line from the txt. I am supposing each line only has a word.
To capitalize a letter, we always subtract the char code by 32. For example 'a' is 97, while 'A' is 65, 'b' is 98 while 'B' is 66... I got these informations from the ascii table.
So
void capitalize(){
int size_buffer = 100;
int i;
FILE * input;
FILE *output;
input = fopen("input.txt", "r");
output = fopen("output.txt", "w");
char * buffer;
buffer = (char*)calloc(size_buffer, sizeof(char))
while(fgets(buffer, size_buffer*sizeof(char), input) != NULL){
if(buffer[0] == 'a'){
for(i = 0; i < strlen(buffer); i++){
buffer[i] -= 32;
}
fprintf(output, "%s\n", buffer)
}
}
fclose(input);
fclose(output);
}