Ngôn ngữ lập trình C đã được ra mắt cách đây hơn 5 thập kỷ. Kể từ đó, nó đã trở nên phổ biến rộng rãi trong thế giới lập trình. Nó vượt trội hơn các ngôn ngữ khác nhờ các tính năng bao gồm cấu trúc đơn giản, chức năng, tính di động, quản lý bộ nhớ hiệu quả, v.v. Mặc dù có nhiều tính năng khác, các hàm trong C là tài sản nổi bật nhất hỗ trợ nhiều người dùng viết các đoạn mã mạnh mẽ.
Hơn nữa, itoa là một hàm phi tiêu chuẩn được sử dụng rộng rãi, hoạt động như một công cụ chuyển đổi kiểu dữ liệu. Nó lấy kiểu dữ liệu int làm đầu vào và chuyển đổi nó thành một chuỗi. Tuy nhiên, nhiều bạn chưa biết công dụng của nó. Do đó, hướng dẫn này giải thích ngắn gọn cách sử dụng hàm itoa trong C mà không gặp rắc rối.
Hãy bắt đầu với những điều cơ bản. Đây là cú pháp đơn giản cho hàm itoa:
int main() {
int num =12345;
char str[20];
itoa(num, str, 10);
printf("Số nguyên:%d\nChuỗi:%s\n", num, str);
trả về 0;
Trong chương trình đã cho, chi tiết như sau:
- num là số nguyên
- str là ký tự
- 10 là âm trầm
Bây giờ, hãy tiếp tục, viết chương trình và triển khai hàm itoa. Ví dụ:chúng ta cần viết chương trình để thay đổi các số đã nhập thành chuỗi.
#include
#include
void itoa(int num, char *str, int base) {
int tôi =0;
int isNegative =0;
nếu (num ==0) {
str[i++] ='0';
str[i] ='\0';
trở lại;
if (num <0 &&base !=10) {
isNegative =1;
số =-num;
trong khi (num !=0) {
int rem =num % cơ sở;
str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';
num =số/cơ số;
if (isNegative &&base ==10)
str[i++] ='-';
str[i] ='\0';
int bắt đầu =0;
int end =i - 1;
trong khi (bắt đầu
char temp =str[bắt đầu];
int chính() {
int max_size =snprintf(NULL, 0, "%d", num) + 1;
nếu (str ==NULL) {
itoa(num, str, 10);
printf("Số nguyên:%d\nString:%s\n", num, str);
miễn phí(str);
trả về 0;
Trong chương trình trước, itoa (int num, char *str, int base) là hàm itoa. Hơn nữa, cú pháp sau gán trực tiếp số 0 cho kết quả khi số đầu vào cũng bằng 0:
nếu (num ==0) {
str[i++] ='0';
Khi số đầu vào âm và cơ số cũng không phải là 10, các dòng chương trình sau sẽ đặt cờ âm:
if (num <0 &&base !=10) {
isNegative =1;
Vòng lặp sau xử lý tất cả các chữ số và chuyển đổi chúng thành ký tự tương ứng. Do đó, đối với các cơ số lớn hơn 10, chương trình sử dụng các chữ cái “a” đến “f” cho các chữ số từ 10 đến 15.
trong khi (num !=0) {
int rem =num % cơ sở;
str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';
num =số/cơ số;
Khi số ban đầu là âm và cơ số là 10, chương trình sẽ thêm dấu âm vào chuỗi kết quả.
if (isNegative &&base ==10)
str[i++] ='-';
Các dòng sau kết thúc chuỗi kết quả và sau đó đảo ngược chuỗi đó khi các chữ số thu được theo thứ tự ngược lại trong quá trình chuyển đổi:
str[i] ='\0';
// Đảo ngược chuỗi
int bắt đầu =0;
int end =i - 1;
trong khi (bắt đầu
char temp =str[bắt đầu];
Do đó, chương trình lấy số nguyên làm đầu vào và cấp phát bộ nhớ để biểu diễn chuỗi. Sau đó, nó gọi itoa để chuyển số nguyên thành chuỗi và in số nguyên ban đầu. Cuối cùng, nó giải phóng bộ nhớ được phân bổ. Ví dụ:hãy đưa ra một số cho chương trình:
Tuy nhiên, nếu bạn nhập số không nguyên thì chương trình sẽ hiển thị kết quả như sau:
Đây là cách bạn có thể dễ dàng triển khai và sử dụng hàm itoa trong C. Chúng tôi đã sử dụng một ví dụ chi tiết chứa nhiều hàm để chuyển đổi số nguyên thành chuỗi. Hãy nhớ rằng đây chỉ là một ví dụ nhưng bạn có thể kết hợp hàm itoa với nhiều hàm khác nhau để viết những chương trình tuyệt vời.
Một người dùng Linux đam mê vì lý do cá nhân và nghề nghiệp, luôn khám phá những điều mới mẻ trong thế giới Linux và chia sẻ với độc giả của mình.
str[bắt đầu] =str[kết thúc];
str[end] =tạm thời;
bắt đầu++;
kết thúc--;
}
int số;
printf("Nhập số nguyên:");
if (scanf("%d", &num) !=1) {
fprintf(stderr, "Đầu vào không hợp lệ. Vui lòng nhập số nguyên.\n");
trả về EXIT_FAILURE;
char *str =(char *)malloc(max_size);
fprintf(stderr, "Việc cấp phát bộ nhớ không thành công\n");
trả về EXIT_FAILURE;
str[i] ='\0';
trở lại;
số =-num;
str[bắt đầu] =str[kết thúc];
str[end] =tạm thời;
bắt đầu++;
kết thúc--;

Kết luận
Giới thiệu về tác giả
Prateek Jangid