I want to standardize the paragraph automatically when using dot (.)
For example :
.Agritour co von dieu le hai tram ti.Hien cong ty dang .quan ly nhieu khach san .
After that, it would be
. Agritour co von dieu le hai tram ti. Hien cong ty dang. quan ly nhieu khach san.
But I have encountered an unexpected result between using two different compilers, Visual Studio 2019’s compiler (get the answer I need) and Dev-C++’s compiler (wrong result),
#include <iostream>
#include <string.h>
using namespace std;
#define MAX 300
void ChenChuoiTaiVitriK(char s[], char s1[], int k);
void Chuanhoa(char s[]);
int myStrlen(char s[], int k);
bool myStrcat(char s[], char s1[], char s2[]);
void myStrcpy(char s[], int vt, char s1[], int k);
int myStrstr(char s[], char s1[]);
int main()
{
char s[MAX];
fflush(stdin);
cin.getline(s, MAX);
char s1[MAX];
myStrcpy(s1, 0, s, 0);
Chuanhoa(s1);
cout << s << endl << s1 << endl;
return 0;
}
// delete element in array at index vt, k elements
void ChenChuoiTaiVitriK(char s[], int vt, int k) {
int count = 0;
if (s[vt + k] == '') {
s[vt] = '';
}
else {
for (int i = vt; s[i + k] != ''; i++) {
s[i] = s[i + k];
count = i + k;
}
s[count + 1 - k] = '';
}
}
// dot standardization
void Chuanhoa(char s[]) {
int count=0;
char s3[MAX];
myStrcpy(s3, 0, s, 0);
for (int i = 0; s[i] != ''; i++)
{
if (s[i] == ' ' && s[i + 1] == '.') {
ChenChuoiTaiVitriK(s, i, 1);
myStrcpy(s3, 0, s, 0);
i-=2;
}
else if (s[i] == '.' && s[i + 1] == ' ' && s[i + 2] == '') {
ChenChuoiTaiVitriK(s, i + 1, 1);
myStrcpy(s3, 0, s, 0);
i--;
}
else if (s[i] == '.' && s[i + 1] == ' ') {
if (s[i + 2] == ' ') {
ChenChuoiTaiVitriK(s, i + 1, 1);
myStrcpy(s3, 0, s, 0);
i -= 2;
}
}
else if (s[i] == '.' && s[i + 1] != ' ' && s[i + 1] != '') {
for (int j = i +1; s3[j] != '';j++) {
s[j+1]=s3[j];
}
s[i+1] = ' ';
s[myStrlen(s3, 1) + 1] = '';
myStrcpy(s3, 0, s, 0);
i -= 2;
}
}
}
//copy a full C-string type from s[]
void myStrcpy(char s1[], int vt, char s[], int k) {
int count = 0;
int flag = 0;
for (int i = vt; s[i] != ''; i++) {
s1[i] = s[i];
count++;
flag++;
}
s1[count] = '';
}
//return the size of string start from index k-1
int myStrlen(char s[], int k) {
int count = 0;
for (int i = k - 1; s[i] != ''; i++)
{
count++;
}
return count;
}
So anyone can realize why and how i can fix that, i really appreciate that
VS2019 result:. Agritour co von dieu le hai tram ti. Hien cong ty dang. quan ly nhieu khach san.
DevC++ result:. Agritour co von dieu le hai tram ti.Hien cong ty dang .quan ly nhieu khach san .
1
how i can fix that – Use a debugger.