请教如何无调字符串末尾的"0",谢谢

mysummer2013 2012-12-05 08:37:52
比如 "0,00"
"12.00"
希望变成 "0"
"12"

char str[20]; 型
谢谢
...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
prajna 2012-12-05
  • 打赏
  • 举报
回复
僅供參考 char str[20]; int len = strlen(str); int i; for (i=len-1; i>=0; i--) if (str[i] != '0' && str[i] != '.') break; str[i+1] = '\0';
秃头披风侠 2012-12-05
  • 打赏
  • 举报
回复
遍历直到遇到非数字字符
图灵狗 2012-12-05
  • 打赏
  • 举报
回复
不然你可以按照自己的规则一个字符一个字符的解析。
引用 4 楼 mysummer2013 的回复:
引用 3 楼 turingo 的回复:只取.或者,号前面的子串。 引用 2 楼 mysummer2013 的回复: 引用 1 楼 turingo 的回复:参考如下的代码: C/C++ code ? 12345678910111213 #include <stdio.h> int main(int argc, char* argv……
mysummer2013 2012-12-05
  • 打赏
  • 举报
回复
引用 3 楼 turingo 的回复:
只取.或者,号前面的子串。 引用 2 楼 mysummer2013 的回复: 引用 1 楼 turingo 的回复:参考如下的代码: C/C++ code ? 12345678910111213 #include <stdio.h> int main(int argc, char* argv[]) { char str[20] = "12.00"……
正则表达式其实是一种比较慢的操作,最好能不用正则 比如oracle的函数 Rtrim就不错
图灵狗 2012-12-05
  • 打赏
  • 举报
回复
只取.或者,号前面的子串。
引用 2 楼 mysummer2013 的回复:
引用 1 楼 turingo 的回复:参考如下的代码: C/C++ code ? 12345678910111213 #include <stdio.h> int main(int argc, char* argv[]) { char str[20] = "12.00"; char s[20]; sscanf……
mysummer2013 2012-12-05
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
参考如下的代码: C/C++ code ? 12345678910111213 #include <stdio.h> int main(int argc, char* argv[]) { char str[20] = "12.00"; char s[20]; sscanf(str, "%[^,.]", s); printf("……
正则表达式,你这样会不会把中间的0也给去掉了啊 比如 12.01 变成 121 ,那悲催额
图灵狗 2012-12-05
  • 打赏
  • 举报
回复
参考如下的代码:

#include <stdio.h>

int main(int argc, char* argv[])
{
	char str[20] = "12.00";
	char s[20];

	sscanf(str, "%[^,.]", s);
	printf("%s\n", s);

	return 0;
}

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧