Reverse string là gì?

Phrase Programming
reverse a string
Đảo ngược chuỗi

Đảo ngược chuỗi (reverse string) có thể được định nghĩa là một thao tác (operation) trong đó chuỗi (string) gốc mà người dùng cung cấp được sửa đổi theo cách mà các ký tự trong đó được sắp xếp theo cách ngược lại bắt đầu từ ký tự cuối cùng đến ký tự đầu tiên, do đó tạo thành một chuỗi mới sẽ là bản đảo ngược chính xác của chuỗi ban đầu.

Để đảo ngược một chuỗi, chúng ta có thể duyệt (traverse) các ký tự (character) trong một chuỗi từ cuối chuỗi đến đầu chuỗi và nối (append) từng ký tự. Bằng cách này, chúng ta sẽ có một chuỗi mới được hình thành bằng cách đảo ngược và chuỗi này sẽ là chuỗi đảo ngược (reversed string). Trong ngôn ngữ C, vì chúng ta không có hỗ trợ cho kiểu dữ liệu (data type) chuỗi, thay vào đó chúng ta cần sử dụng một mảng ký tự (character array). Ở đây có thể dễ dàng duyệt các ký tự của mảng ký tự theo từng ký tự và tạo thành một mảng ký tự mới.

Sau đây là ví dụ về đảo ngược chuỗi (reverse string) trong C sử dụng vòng lặp for (for loop).


#include 
#include 
int main ()
{
// char array to take input
char inputString[100];
// char array to build output
char outputString[100];
int length;
int i;
// Take input from the user : input in character array
printf( "Please Enter a string to be reversed \n" );
scanf( "%s", inputString );
// Find the number of characters or length of a string using in built function strlen() from string.h library
length = strlen( inputString );
int j = 0;
// Traverse character by character from end to start and form a new string
for( i = length - 1; i >= 0; i--) {
outputString[ j ] = inputString[ i ];
j++;
}
printf( "The reversed string is: ");
printf( "%s", outputString );
printf( "\n" );
return 0;
}

Output:


Please Enter a string to be reversed
abcdef
The reversed string is: fedcba

Ở đây, chúng tôi đã sử dụng strlen() từ thư viện để tìm ra số ký tự có trong chuỗi đầu vào và chuyển nó vào vòng lặp for. Chúng ta đã duyệt mảng từ cuối đến đầu chuỗi và nối các ký tự theo thứ tự ngược lại trong một mảng đầu ra bằng cách sử dụng vòng lặp for.

Learning English Everyday