linux snprintf获取字符串中的某一段的长度问题
来源:互联网 发布:2017seo内容编辑软件 编辑:程序博客网 时间:2024/06/05 07:50
如字符串 "123(456)"获取括号内的值
char *str="123(456)";char *find1=strchr(str,'('); find1++;char *find2=strchr(str,')');char tmp[12]={0}; //用来保存获取到的值snprintf(tmp, find2-find1,"%s",find1);
以上代码看似没问题, 复制个数 find2-find1 =3,刚好可以得到456.
可是运行得知,只能得到 45
为什么呢?
查看snprintf原型
int snprintf(char *str, size_t size, const char *format, ...)
当被复制的字符串长度大于size时,只能复制size-1个,外加一个\0
因为在snprintf(tmp, find2-find1,"%s",find1);中 find1所指向的字符串"456)"长度大于 find2-find1,所以要复制3个,实际要写4个,所以要find2-find1+1;
0 0
- linux snprintf获取字符串中的某一段的长度问题
- 获取String字符串中的某一段字符!
- oracle获取某一字段字符串长度
- 【linux 开发】snprintf返回值为最后一个字符串的长度
- GridView截取某一列字符串的长度,
- java如何读取字符串中的某一段字符串?
- 获取字符串的长度!
- 获取字符串的长度
- 获取字符串的长度
- 字符串长度的获取
- 编写函数,获取两段字符串的最长公共子串的长度
- 关于获取字符串的长度
- 关于获取字符串的长度
- C#获取字符串的长度
- 获取字符串的真实长度
- 关于获取字符串的长度
- C#获取字符串的长度
- 获取字符串的像素长度
- 决策树与R语言(RPART)
- GCC编译选项补充
- C# Huffman编译码细节
- 杭电OJ(HDOJ)1010题:Tempter of the Bone(DFS,迷宫求解)
- 杨辉三角
- linux snprintf获取字符串中的某一段的长度问题
- uva 10487
- hdu-1282-回文数猜想( 存int类型操作 )
- Hash Table 开放寻址处理冲突
- OpenWRT定时关闭WIFI
- JAVA - 类和对象
- re---Python的正则表达式模块
- JAVA中开闭原则-----对扩展开放, 对修改关闭。以及接口隔离原则的强大
- 技术的未来,迷茫和选择