+ -
当前位置:首页 → 问答吧 → 怎么用sprintf写字符串的后5位?

怎么用sprintf写字符串的后5位?

时间:2010-07-22

来源:互联网

比如

sprintf(str, "%s", "abcdefghijk");

最后str = ghijk

这个格式怎么控制?

作者: ZSMDEV   发布时间: 2010-07-22

sprintf(str, "%s", "abcdefghijk"+5 ); ?

作者: OwnWaterloo   发布时间: 2010-07-22

/*a = "abcdefghijk";*/

sprintf(str,"%s", a+strlen(a)-5);

但是太麻烦,有没有直接的格式控制?

作者: ZSMDEV   发布时间: 2010-07-22

后五位的话,
那就用 strlen() - 5 把 OwnWaterloo表达式里的 5 替换掉。

作者: pandaiam   发布时间: 2010-07-22

前五位,我知道

  1 #include <stdlib.h>
  2 #include <stdio.h>
  3
  4 int main()
  5 {
  6     char str[100];
  7     sprintf(str, "%.5s", "abcdefghijk";
  8
  9     printf("str is %s\n", str);
10 }

作者: rain_fish   发布时间: 2010-07-22

回复 ZSMDEV

我想错了……

作者: OwnWaterloo   发布时间: 2010-07-22

看来只能用strlen了

作者: ZSMDEV   发布时间: 2010-07-22

这似乎和sprintf无关吧

作者: mirnshi   发布时间: 2010-07-22



QUOTE:
这似乎和sprintf无关吧
mirnshi 发表于 2010-07-22 16:40




    我是希望sprintf有种格式直接输出,就像从前面截取的格式  "%10.10s"   一样

作者: ZSMDEV   发布时间: 2010-07-22



QUOTE:
我是希望sprintf有种格式直接输出,就像从前面截取的格式  "%10.10s"   一样
ZSMDEV 发表于 2010-07-22 16:43




    此事甚好,汝去写来。

作者: 狗气球   发布时间: 2010-07-22



QUOTE:
此事甚好,汝去写来。
狗气球 发表于 2010-07-22 16:44



ls的签名啥意思?

作者: rain_fish   发布时间: 2010-07-22