C函数之index、strtoul
index函数
函数定义:
#include<strings.h> char *index(const char *s, int c);
函数说明:
找出参数s字符串中第一个出现参数c的地址,然后将该字符串出现的地址返回。字符串结束字符(NULL)也视为字符串的一部分。
返回值:
如果找到指定的字符,则返回字符所在地址,否则返回NULL
实例:
/*** index.c ***/ #include<stdio.h> #include<strings.h> int main() { char *s = "abcdef1234567abcdef"; char *p = NULL; p = index(s, 'b'); printf("%s\n",p); return 0; }
运行结果:
strtoul函数
函数原型:
#include<stdlib.h> unsigned long int strtoul(const char *nptr, char **endptr, int base); unsigned long long int strtoull(const char *nptr, char **endptr,int base);
参数介绍:
nptr: 字符串起始位置
endptr: 返回字符串有效数字的结尾地址。如123456fe789,则返回f的地址。
base: 转化基数。范围2~36,或0代表nptr采用的进制方式。
功能描述:
把输入的字符串转换成数字,该函数会扫描参数nptr字符串,跳过签过的空白字符(例如空格,tab键,可以通过isspace()函数来检测),知道遇到数字或正负符号才开始转换,在遇到非数字或字符串结束时(’\0’)结束转换,并将结果返回。
注意:
当 base 的值为 0 时,默认采用 10 进制转换,但如果遇到 '0x' / '0X' 前置字符则会使用 16 进制转换,遇到 '0' 前置字符则会使用 8 进制转换。
若 endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。
实例1:
输入字符串,base值为2,二进制转换。
/*** strtoul_base2.c ***/ #include<stdio.h> #include<stdlib.h> int main() { char buffer[256]; unsigned long lu; char *endptr; while(1) { printf("Enter an unsigned number: "); fgets(buffer, 256, stdin); lu = strtoul(buffer, &endptr, 2); printf("Value entered:%lu, the address of first invalid character is %d, invalid characer = %s\n", lu,endptr,endptr); } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)