Bài tập C++: Nối chuỗi trong C++
Đề bài: Viết chương trình C++ để nối 2 chuỗi trong C.
Bài tập C++ này có nhiều cách gọi: trộn hai chuỗi, nối hai chuỗi, ghép hai chuỗi hay cộng hai chuỗi, … Dù có nhiều cách gọi khác nhau đi chăng nữa thì đây cũng chỉ là một bài tập để nối ghép các ký tự của hai chuỗi để thành một chuỗi duy nhất.
Lời giải (không sử dụng hàm)
Để giải bài tập C++ này, bạn sử dụng hàm strlen() để tìm độ dài chuỗi. Sử dụng vòng lặp để lặp qua tất cả ký tự của chuỗi.
Dưới đây là chương trình C++ để giải bài tập nối chuỗi trong C++:
#include <stdio.h> #include <string.h> int main() { char s1[10] = "VietTuts"; char s2[] = ".Vn"; int i, j, n1, n2; n1 = strlen(s1); n2 = strlen(s2); j=0; for(i = n1; i<n1+n2; i++ ) { s1[i] = s2[j]; j++; } s1[i] = '\0'; printf("\nKet qua sau khi noi chuoi la:\n"); printf("%s", s1); return 0; }
Chạy chương trình C++ trên cho kết quả như sau:
Lời giải (sử dụng hàm)
Bạn có thể thực hiện nối hai chuỗi thành một chuỗi bởi sử dụng các hàm strcpy() và strcat() trong C.
Giả sử bạn cần nối hai chuỗi là str1 và str2. Bạn cần khai báo thêm một chuỗi str3 có độ dài bằng tổng độ dài của str1 và str2. Sau đó:
Sử dụng hàm strcpy(str3, str1) để sao chép chuỗi str1 vào str3.
Sử dụng hàm strcat(str3, str2) để nối chuỗi str2 với str1 vừa được sao chép.
Dưới đây là chương trình C++ để giải bài tập nối chuỗi trong C++:
#include<stdio.h> #include<string.h> int main() { char str1[100]; char str2[100]; char str3[100]; int len; printf("Nhap chuoi 1: "); gets(str1); printf("Nhap chuoi 2: "); gets(str2); strcpy(str3, str1); strcat(str3, str2); printf("\nNoi chuoi: %s", str3); return (0); }
Chạy chương trình C++ trên cho kết quả như sau: