| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 482 人关注过本帖
标题:[求助]字符连接错在哪?实在找不到啊?
只看楼主 加入收藏
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
结帖率:100%
收藏
 问题点数:0 回复次数:5 
[求助]字符连接错在哪?实在找不到啊?

为什么这个程序不管用..我实在是找不到有什么错误....请各位帮下忙......程序的功能是将第二个字符串接到第一个字符串后面....我用函数来实现的.....比如输入abcdefg给第一个字符串......123456给第二个字符串.....结果怎么会是abcdefg1呢?

void join(char *p,char *q)
{int i;
for(i=0;*(q+i)!='\0';i++)
*(p+strlen(p)+i)=*(q+i);
*(p+strlen(p)+i)='\0';
}


main()
{char a[30],b[10];
gets(a);
gets(b);
printf("the a array is:\n");
puts(a);
join(a,b);
printf("after joined:\n");
puts(a);
getch();
}

搜索更多相关主题的帖子: 字符 
2006-11-12 23:08
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
void join(char *p,char *q)
{int i;
for(i=0;*(q+i)!='\0';i++)
*(p+strlen(p)+i)=*(q+i);
*(p+strlen(p)+i)='\0';
}

会随时改变,先用个变量保存起来.

倚天照海花无数,流水高山心自知。
2006-11-12 23:42
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
以下是引用nuciewth在2006-11-12 23:42:18的发言:
void join(char *p,char *q)
{int i;
for(i=0;*(q+i)!='\0';i++)
*(p+strlen(p)+i)=*(q+i);
*(p+strlen(p)+i)='\0';
}

会随时改变,先用个变量保存起来.

终于知道了..........谢谢谢谢谢谢谢谢谢谢.........呵呵
我还是经验不足...


这个社会太复杂。。。
2006-11-13 00:11
meiling01
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2006-11-2
收藏
得分:0 

该程序我在VC环境运行了一下,怎么不能正确执行呢? 请帮忙啊,多谢阿。
#include<stdio.h>
char *p,*q;
void join(*p,*q)
{
int i,j;
j=strlenth(p)
for(i=0;*(q+i)!='\0';i++)
*(p+j+i)=*(q+i);
*(p+j+i)='\0';

}
void main()
{char a[30],b[10];
void join()
gets(a);
gets(b);
printf("output the original string:\n");
puts(a);
join(a,b);
printf("the array a becomes:\n");
puts(b);

}

2006-11-13 08:54
young
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:223
专家分:160
注 册:2004-9-5
收藏
得分:0 


看看我写的
int Strlen(char *arr)
{
int count = 0;

while(*arr)
{
++count;
++arr;
}

return count;

}


char * Strcpy(char *strDes, char *strSor)
{
while ( !( (*strDes==0) && (*strSor==0) ) )
{
++strDes;
++strSor;
}

strDes = '\0';
return strDes;
}


int Strcmp(char *string1, char *string2 )
{
while( *string1 == *string2 )
{
if(*string1 == '\0')
{
return 0;
}

string1++;
string2++;
}
return (*string1 - *string2);

}

int Strncmp(char *string1, char *string2, int size )
{
int count = 0;

while(count< size)
{

if(string1[count] != string2[count])
{
return string1[count]- string2[count];
}
++count;
}
return 0;
}

char * Strncpy(char *strDes, char *strSor , unsigned int size )
{

unsigned int count = 0;

while( (*strDes = *strSor ) && ( count < size ) )
{
++strDes;
++strSor;
++count;
}

strDes = '\0';
return strDes;
}


char * Strcat( char *strDes, char *strSor )
{

char *dest = strDes;


dest = dest + Strlen(strDes);
Strcpy(dest,strSor);
return strDes;
}

[此贴子已经被作者于2006-11-13 9:51:12编辑过]


如果你爱C语言,请你爱指针; 如果你爱指针,请你爱指针的指针;
2006-11-13 09:50
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用meiling01在2006-11-13 8:54:30的发言:

该程序我在VC环境运行了一下,怎么不能正确执行呢? 请帮忙啊,多谢阿。
#include<stdio.h>
char *p,*q;
void join(*p,*q)
{
int i,j;
j=strlenth(p)
for(i=0;*(q+i)!='\0';i++)
*(p+j+i)=*(q+i);
*(p+j+i)='\0';

}
void main()
{char a[30],b[10];
void join()
gets(a);
gets(b);
printf("output the original string:\n");
puts(a);
join(a,b);
printf("the array a becomes:\n");
puts(b);

}

错误很多.,参数不对,缺少;等等.函数这关没好好看啊.


倚天照海花无数,流水高山心自知。
2006-11-13 10:33
快速回复:[求助]字符连接错在哪?实在找不到啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017158 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved