C 语言实现字符串和整数的相互转化

本文介绍如何使用C语言实现字符串与整数之间的相互转换。包括两种方法:一种是手动实现转换,如字符串转整数和整数转字符串;另一种是利用标准库函数如`sprintf`进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面用 C 语言实现字符串和整数的相互转化

一、字符串转化为整数

int str_to_num(const char* s)  // 字符串转化为整数
{
	int exp=0, n=0;
	const char *h = s;
	const char *t = NULL;
	for(;*h <'0' || *h >'9'; h++)  // 找到第一位数字
		;
	for(t=h; *t >='0' && *t <='9'; ++t)  // 找到最后一位数字
		;
	t--;
	while(t >= h)
	{
		n += (*t - 48)*power(10, exp);
		t--;
		exp++;
	}
	return n;
}

二、整数转化为字符串

void num_to_str(const int num, char str[33])  // 整数转化为字符串
{
	int dividend = num;
	int i = 0;
	int j = 0;
	int temp = 0;
	while(dividend)
	{
		str[j] = (dividend%10)+'0';
		dividend /= 10;
		j++;
	}
	str[j] = '\0';
	j--;
	while(i<j)
	{
		temp = str[i];
		str[i] = str[j];
		str[j] = temp;
		i++;
		j--;
	}
	//printf("%s\n", str);
}

实际上有更为简单的方法将数字(也可以是其他可以格式化输出的数据)转化为字符串:

#include <stdio.h>
#include <string.h>
unsigned long long int x = 123456789;
char str[12] = {};
sprintf(str, "%-llu", x); // sprintf 函数能将整数格式化并嵌入到字符串中,并返回最后的字符串

注:
sprintf() 函数原型如下。sprintfprintf功能相似,只不过后者将数据格式化输出到屏幕上,而前者将数据格式化存储在指定的字符数组buffer中。因此,sprintf函数也可以方便地实现字符串的拼接等功能。

int sprintf( char *buffer, const char *format, [ argument]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值