当前位置: 首页 > news >正文

站长百科 wordpress汽车网站模板下载

站长百科 wordpress,汽车网站模板下载,网站建设如何自学,一般网站的费用字符串相关函数(数值转字符串、字符串转数值) 一、字符串转数值函数 1. 基本转换函数 atoi(const char *str):将字符串转为int类型atol(const char *str):将字符串转为long int类型atoll(const char *str):将字符串转为…

字符串相关函数(数值转字符串、字符串转数值)

一、字符串转数值函数

1. 基本转换函数

  • atoi(const char *str):将字符串转为int类型
  • atol(const char *str):将字符串转为long int类型
  • atoll(const char *str):将字符串转为long long int类型
  • atof(const char *str):将字符串转为double类型

这些函数会跳过开头的空白字符,直到遇到数字或正负号开始转换,遇到非数字字符停止。

2. 更灵活的转换函数

  • strtol(const char *str, char **endptr, int base):转换为long int,支持指定进制(2-36)
  • strtoll(const char *str, char **endptr, int base):转换为long long int
  • strtod(const char *str, char **endptr):转换为double
  • strtof(const char *str, char **endptr):转换为float

这些函数通过endptr参数可以获取转换停止的位置,便于错误处理。

二、数值转字符串函数

  • sprintf(char *str, const char *format, ...):将格式化的数值写入字符串
  • snprintf(char *str, size_t size, const char *format, ...):类似sprintf,但限制最大写入字节数,更安全
  • itoa(int value, char *str, int base):非标准函数,将整数转为指定进制的字符串(某些编译器支持)

三、扩展示例代码

代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>// 字符串转整数并处理错误
int str_to_int(const char *str, int *result) {char *endptr;long val;errno = 0;val = strtol(str, &endptr, 10);// 检查各种可能的错误if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN)) || (errno != 0 && val == 0)) {perror("转换错误");return 0;}if (endptr == str) {fprintf(stderr, "没有有效的数字\n");return 0;}// 检查是否超出int范围if (val > INT_MAX || val < INT_MIN) {fprintf(stderr, "数值超出int范围\n");return 0;}*result = (int)val;return 1;
}// 字符串转浮点数并处理错误
int str_to_double(const char *str, double *result) {char *endptr;errno = 0;*result = strtod(str, &endptr);if ((errno == ERANGE && (*result == HUGE_VAL || *result == -HUGE_VAL)) || (errno != 0 && *result == 0)) {perror("转换错误");return 0;}if (endptr == str) {fprintf(stderr, "没有有效的数字\n");return 0;}return 1;
}// 整数转字符串
void int_to_str(int num, char *buffer, size_t size) {snprintf(buffer, size, "%d", num);
}// 浮点数转字符串
void double_to_str(double num, char *buffer, size_t size, int precision) {char format[20];snprintf(format, sizeof(format), "%%.%df", precision);snprintf(buffer, size, format, num);
}int main() {// 1. 字符串转数值示例printf("===== 字符串转数值示例 =====\n");// 基本整数转换const char *int_str = "12345";int int_val;if (str_to_int(int_str, &int_val)) {printf("字符串 \"%s\" 转换为整数: %d\n", int_str, int_val);}// 带符号的整数const char *signed_str = "-9876";if (str_to_int(signed_str, &int_val)) {printf("字符串 \"%s\" 转换为整数: %d\n", signed_str, int_val);}// 浮点数转换const char *float_str = "3.1415926535";double double_val;if (str_to_double(float_str, &double_val)) {printf("字符串 \"%s\" 转换为浮点数: %.6f\n", float_str, double_val);}// 科学计数法const char *sci_str = "1.234e5";if (str_to_double(sci_str, &double_val)) {printf("字符串 \"%s\" 转换为浮点数: %.2f\n", sci_str, double_val);}// 错误转换示例const char *error_str = "123abc";if (str_to_int(error_str, &int_val)) {printf("字符串 \"%s\" 转换为整数: %d\n", error_str, int_val);} else {printf("字符串 \"%s\" 转换失败\n", error_str);}// 2. 数值转字符串示例printf("\n===== 数值转字符串示例 =====\n");int num = -54321;char str[50];int_to_str(num, str, sizeof(str));printf("整数 %d 转换为字符串: \"%s\"\n", num, str);double fnum = 2.718281828;double_to_str(fnum, str, sizeof(str), 4);printf("浮点数 %.6f 转换为字符串(保留4位小数): \"%s\"\n", fnum, str);// 格式化转换int hex_num = 255;snprintf(str, sizeof(str), "十进制: %d, 十六进制: 0x%x, 八进制: 0%o", hex_num, hex_num, hex_num);printf("多格式转换: \"%s\"\n", str);return 0;
}

运行结果
在这里插入图片描述

代码说明

这个示例包含以下特点:

  1. 封装的转换函数
    • str_to_int:字符串转整数,包含完整的错误处理
    • str_to_double:字符串转浮点数,处理各种错误情况
    • int_to_str:整数转字符串
    • double_to_str:浮点数转字符串,可指定精度
  2. 全面的错误处理
    • 检查范围错误(ERANGE)
    • 检查无效输入(无有效数字)
    • 检查整数溢出(超出 int 范围)
  3. 多样化转换示例
    • 基本整数转换
    • 带符号整数转换
    • 浮点数转换
    • 科学计数法转换
    • 错误输入处理
    • 多格式数值转字符串
  4. 安全实践
    • 使用snprintf代替sprintf防止缓冲区溢出
    • 明确指定缓冲区大小
    • 处理各种边界情况
http://www.dtcms.com/a/404851.html

相关文章:

  • 共享办公商业租赁网站模板怎么投诉网络平台
  • 用织梦做网站都需要用什么手机端网站重构
  • 生成网站有吗免费的信息最全的网站
  • dw网站建设怎么放在网上关于做网站常见的问题
  • 北京网站建设方案飞沐智慧团建pc端注册登录入口
  • app开发去哪个网站数字营销网站建设
  • 杭州 手机网站建设公司网站建设文章
  • 网站建设用哪种语言最好注册账号自建网站
  • 建设银行网网站网站排名优化外包公司
  • 网站免费推广的方法wordpress栏目标题被调用
  • 百度推广费用多少上海seo顾问
  • 网站ui设计之道陕西省信用建设门户网站
  • 住房和城乡建设部官网证件查询注册优化网站推广
  • 做的网站显示不了背景图片被关闭的设计网站
  • 广州做网站找哪个公司好响应式网站的开发
  • 做网站没有固定电话永川网站建设熊掌号
  • 网站策划招聘阿里网站多个域名
  • 深圳网站维护哈尔滨建设部网站
  • 网站运营介绍驾校网站建设方案题婚
  • 企业网站倾向于wordpress10条重大新闻事件
  • 怎么建设一个音乐网站宜宾seo快速排名
  • 合肥做网站联系方式网站建设和网页建设的区别
  • 网站怎么建立会员南京网站设计开发
  • 建造网站需要多少钱网站建设费摊销几年
  • 做网站申请哪类商标长治做网站公司
  • 免费三网合一网站系统WordPress添加工单功能
  • 免费网站推广宣武成都网站建设
  • 网站积分的作用wordpress版权声明
  • wordpress修改头像插件windows优化大师手机版
  • 郑州网站制作的公司哪家好做酒店网站