中易网

C语言编程:sprintf(chr,"%s",a[1]);字符数组输出的问题

答案:6  悬赏:40  
解决时间 2021-01-17 22:53
  • 提问者网友:我的未来我做主
  • 2021-01-17 02:07
C语言编程:sprintf(chr,"%s",a[1]);字符数组输出的问题
最佳答案
  • 二级知识专家网友:woshuo
  • 2021-01-17 03:13
1、字符数组输出的时候,应该传入字符组首地址。sprintf(chr,"%s",a);才正确。
2、sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。
sprintf 是个变参函数,定义如下:
int sprintf( char *buffer, const char *format [, argument] ... );
除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:
格式化字符串上。
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-01-17 07:40
sprintf(chr,"%.5s",a);追问可是我本来不知道a[1]="abolg(2)";这值是提取出来的,提取出来的值不同,所以不确定其位数,这要怎么办呢?
谢谢了!
  • 2楼网友:未来江山和你
  • 2021-01-17 06:37
sprintf(chr,"%5s",a[1]);
  • 3楼网友:长青诗
  • 2021-01-17 05:47
我暂时保留我的看法!
  • 4楼网友:七十二街
  • 2021-01-17 04:55
你的目的是把括号前的字符串保存到chr数组里,那用sprintf是达不到目的的。
你可以先把整个字符串复制到chr,然后找到‘(',把它替换成’\0'就可以了。
char *cp;
strcpy(chr, a[0]);
cp = strchr(chr, '(');
if(cp)
*cp='\0';
  • 5楼网友:一秋
  • 2021-01-17 04:10
如果你知道位置:
sprintf(chr,"%s",a[1]); chr[5]=0; printf("%s\n",chr); 只输出abolg
如果你寻找小括号位置abcdolg(2):
int i;
for (i=0;iprintf("%s",chr); 只输出abcdolg
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息