1. atoi()
函数:字符串转整数
atoi()
函数(ASCII to integer的缩写)用于将一个字符串转换为对应的整数。它位于<stdlib.h>
头文件中。
#include <stdlib.h>
int atoi(const char *str);
str
:要转换的字符串。
以下是使用atoi()
函数将字符串转换为整数的示例:
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "12345";
int num = atoi(str);
printf("Converted number: %d\n", num);
return 0;
}
2. itoa()
函数:整数转字符串
itoa()
函数(integer to ASCII的缩写)用于将一个整数转换为对应的字符串。然而,需要注意的是,itoa()
并不是C标准库中的函数,不同的编译器可能有不同的实现。
以下是一个简单的自定义itoa()
函数的示例:
#include <stdio.h>
#include <stdlib.h>
void reverse(char str[], int length) {
int start = 0;
int end = length - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
char *itoa(int num, char *str, int base) {
int i = 0;
int isNegative = 0;
if (num == 0) {
str[i++] = '0';
str[i] = '\0';
return str;
}
if (num < 0 && base == 10) {
isNegative = 1;
num = -num;
}
while (num != 0) {
int rem = num % base;
str[i++] = (rem > 9) ? (rem - 10) + 'a' : rem + '0';
num = num / base;
}
if (isNegative) {
str[i++] = '-';
}
str[i] = '\0';
reverse(str, i);
return str;
}
int main() {
int num = 12345;
char str[20];
itoa(num, str, 10);
printf("Converted string: %s\n", str);
return 0;
}
3. 注意事项
atoi()
函数会忽略非数字字符之前的所有字符,直到找到第一个数字字符。itoa()
函数的实现因编译器而异,不是C标准库中的函数。可以根据需要自定义一个itoa()
函数。
4. 结论
atoi()
和itoa()
函数在C语言中用于字符串和整数之间的转换,为处理输入和输出提供了便捷的方法。本文详细介绍了这两个函数的用法和注意事项,并提供了一个简单的itoa()
函数的示例。通过掌握这些函数,你可以更好地进行字符串和整数之间的转换,提高程序的灵活性和实用性。