#include <cstdio> #include <cstdlib> #include <cstring> using namespace std; int main() { char s1[20]="319"; char s2[10]; memset(s2,0,sizeof(s2)); strcpy(s2,"1235"); sprintf(s1,"%s%s",s2,s1); printf("%s\n",s1); } |
原帖由 5毛党党员 于 2008-10-23 14:22 发表
sprintf(s1,"%s%s",s2,s1);
第一步,已经把 s2 复制到 s1的地址了
第二步,再把 s1 接到 s1后面 ,这时s1已经是"1234"了
原帖由 cuteorange 于 2008-10-23 14:35 发表
C 标准中, 挡逗号操作符(,)出现在函数的参数列表中,则表达式的计算顺序跟实现有关。你的正好是从左至右进行计算,故得到12351235;如果换到别的机器上,实现是逗号操作符从有往左计算,则可以得到预期的结果 ...
原帖由 cuteorange 于 2008-10-23 14:35 发表
C 标准中, 挡逗号操作符(,)出现在函数的参数列表中,则表达式的计算顺序跟实现有关。你的正好是从左至右进行计算,故得到12351235;如果换到别的机器上,实现是逗号操作符从有往左计算,则可以得到预期的结果 ...
原帖由 shaoxia 于 2008-10-29 11:05 发表
补充一下,strcat 只能连接字符串(一段以’\0’结尾的字符数组或叫做字符缓冲,null-terminated-string),但有时我们有两段字符缓冲区,他们并不是以’\0’结尾。比如许多从第三方库函数中返回的字符数组,从 ...
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |