问题
单项选择题
有下面程序段:
#include "stdio.h"
#include "string.h"
main()
char a[3][20]="china","isa","bigcountry!";
char k[100]=0,*p=k;
int i;
for(i=0;i<3;i++)
p=strcat(p,a[i]);
i= strlen(p);
printf("%d\n",i);
则程序段的输出结果是
A) 18
B) 19
C) 20
D) 21
答案
参考答案:B
解析: 字符串连接函数strcat的调用形式:str-cat(s1,s2)。此函数将s2所指字符串的内容连接到s1所指字符串后面,并自动覆盖s1字符串末尾的尾标,函数返回s1的地址值。本题中首先将二维数组中各行的字符串都复制到了指针p所指向的堆数但k的地址空间,然后用strcat函数求出k数但的长度;即19。