Xuống dòng trong chuỗi C++

Cho e hỏi em làm nhập vào 2 chuỗi rồi gộp lại ra chuỗi mới thì nó ko đứng cạnh nhau mà nó xuống dòng thì phải làm sao ạ

int myStrlen(char s[]);
bool myStrcat(char s1[], char s2[]);

int main()
{
	char s1[MAX], s2[MAX];
	fgets(s1,sizeof(s1)+1,stdin);
	fgets(s2,sizeof(s2)+1,stdin);
	bool kt = myStrcat(s1, s2);
    size_t str1=myStrlen(s1),str2=myStrlen(s2);
    if(kt) {for(int i=str1;i<str1+str2;i++){
            s1[i]=s2[i-str1];
        }
        s1[str1+str2]='\0';
        cout<<s1;}
        
    else cout<<"Khong noi duoc. Khong du bo nho.";
    
}
int myStrlen(char s[]){
    int n = 0;
	while (s[n] != '\0')
		n++;
	return n;
}
bool myStrcat(char s1[MAX], char s2[MAX]){
    size_t str1=myStrlen(s1),str2=myStrlen(s2);
    bool ktra=true;
    if(255<(str1+str2+2)){
        ktra=false;
    }else{
        ktra=true;
    }
    return ktra;
}

Vì bạn nhập từng dòng.
Tài liệu về fgets: https://www.cplusplus.com/reference/cstdio/fgets/

Kí tự xuống dòng vẫn được ghi vào chuỗi đầu vào.

2 Likes

vậy làm sao để khắc phục ạ

Xóa kí tự \n (và cả \r nếu trên Windows) đi.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?