黑马程序员技术交流社区
标题: 关于字符串链接的问题 [打印本页]
作者: jingkai 时间: 2015-5-21 08:36
标题: 关于字符串链接的问题
我想实现的是将字符串t拼接到字符串s上,如下程序,编译的时候并没有什么错误,可是运行的时候直接崩溃,最烦这种错误,百爪挠心的感觉,也找不到自己哪里错了,求大家来帮帮忙,献智献策。帮我找找。感激不尽
void strlink (char s[],char t[]);
int main() {
char s[20] = "jingjing";
char t[10] = "1234567890";
strlink(s, t);
NSLog(@"%s",s);
return 0;
}
void strlink (char s[],char t[])
{
unsigned long len1 = strlen(s);
unsigned long len2 = strlen(t);
for (int i =0; i<len2; i++,len1++) {
s[len1] = t;
}
}
作者: Rdxer 时间: 2015-5-21 08:41
s[len1] = t; 循环这里,,你这样会替换掉原来的字符,,连接字符串应该是从尾部开始添加,而不是从头部,
所以 循环哪里,不能从0开始,应该是这样:
for (int i =len1; i<len2+len1; i++) {
s[len1] = t;
}
作者: Rdxer 时间: 2015-5-21 08:42
最后, s[len1+len2]='\0';
作为字符串的结尾
作者: sdzwb89 时间: 2015-5-21 09:19
char *strcat(char *, const char *); // 字符串拼接函数
拼接字符串为什么不用这个函数?
作者: sdzwb89 时间: 2015-5-21 09:31
s[len1] = t; 这个地方能通过吗?s[len1] 存的应该是一个字符变量吧,你给他赋值一个t 字符数组,对这里有疑问,也许是我还没学到~~但感觉 应该是 s[len1]=t[i]; 由于现在不能编译,所以不能验证,如有不对,请指点一下
作者: jingkai 时间: 2015-5-21 10:17
恩 代码拷贝的时候出错了好像是
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |