C语言新手小问题

[复制链接]
查看11 | 回复1 | 2010-5-20 17:52:00 | 显示全部楼层 |阅读模式
#include
void strncat(char [],char [],int);
void main(void)
{

char a[50]="The adopted symbol is ",b[27]="abcdefghijklmnopqrstuvwxyz";

strncat(a, b, 4);
printf("%s\n",a);
}
void strncat(char s[],char t[], int n)
{

int i = 0, j;
while(s[i++]) ;
for(j = 0; j < n && t[j];)
s[i++] = t[j++];

s = '\0';
}
函数strncat(s,t,n)本来应该将字符数组t的前n个字符连接到字符数组s中字符串的尾部。但函数strncat在定义时代码有误,不能实现上述功能。按下面的要求进行操作,回答问题并排除错误。
(1)单步执行。进入函数strncat后观察表达式s、t和i。当光条落在for语句所在行时,i为何值?当光条落在strncat函数块结束标记(右花括号 })所在行时, s、t分别为何值?
(2)分析函数出错的原因,排除错误,使函数正确实现功能,最后写出程序的输出结果。

回复

使用道具 举报

千问 | 2010-5-20 17:52:00 | 显示全部楼层
当光条落在for语句所在行时,i为23@!!!当光条落在strncat函数块结束标记(右花括号 })所在行时, s、t分别为‘\0’,‘e’把void strncat(char s[],char t[], int n){
int i = 0, j;while(s[i++]) ;for(j = 0; j < n && t[j];)s[i++] = t[j++];
s = '\0';}改为void strncat(char s[],char t[], int n){
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行