标题:唉,没事干要求用字符指针~~想了半天只会用字符数组,请教!
只看楼主
crz03128
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-5-22
 问题点数:0 回复次数:10 
唉,没事干要求用字符指针~~想了半天只会用字符数组,请教!

编写函数,实现两个字符串的连接功能。要求用字符指针实现
两个字符串要求自己输入!!!


自己想出来的~~没有用strcat函数,所以有点长~~~哪位高手帮改下,要用到要strcat函数
#include<stdio.h>

void main()

{
char s1[80],s2[40];

int i=0,j=0;

printf("input string1:");

scanf("%s",s1);

printf("input string2:");

scanf("%s",s2);

while(*(s1+i)!='\0')

i++;

while(*(s2+j)!='\0')

{*(s1+i)=*(s2+j);
i++;
j++;
}

s1[i]='\0';

printf("The new string is:%s\n",s1);

}

[此贴子已经被作者于2007-6-12 22:53:01编辑过]

搜索更多相关主题的帖子: input 函数 字符指针 strcat 
2007-06-07 23:36
crz03128
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-5-22
得分:0 

#include<stdio.h>
#include<string.h>
void main()
{
char *str1[50]="maybe you are right";
char *str2[]=" actually you are wrong!";

printf("%s",strcat(*str1,*str2));

}
编了这个,结果出错了


老师领进门,成长靠自己+虚心
2007-06-07 23:50
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
得分:0 

你那样是不行的...

#include<stdio.h>
#include<string.h>
int main()
{
char str1[40]="maybe you are right";
char *str2=" actually you are wrong!";

printf("%s",strcat(str1,str2));

getchar();
return 0;
}


 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-06-08 10:40
Javal
Rank: 1
等 级:新手上路
威 望:1
帖 子:108
专家分:0
注 册:2006-5-7
得分:0 

我想题目要求的意图是让你自己编写一个函数实现字符串链接功能,使用字符指针来实现,而不是简单的调用一个strcat()函数


猝然临之而不惊,无故加之而不怒 /?spaced" target="_blank">Linux C资料
2007-06-08 12:03
crz03128
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-5-22
得分:0 
以下是引用I喜欢c在2007-6-8 10:40:00的发言:

你那样是不行的...

#include<stdio.h>
#include<string.h>
int main()
{
char str1[40]="maybe you are right";
char *str2=" actually you are wrong!";

printf("%s",strcat(str1,str2));

getchar();
return 0;
}

那如果字符串不是初使化就有的
   是由用户自己输入的该怎么改??


老师领进门,成长靠自己+虚心
2007-06-09 23:13
crz03128
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-5-22
得分:0 
运行3楼的程序还是出现了错误......

老师领进门,成长靠自己+虚心
2007-06-09 23:18
chyhome
Rank: 1
等 级:新手上路
威 望:1
帖 子:102
专家分:0
注 册:2007-5-13
得分:0 
用指针这样连接:
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str1[50]="maybe you are right";
char *str2=" actually you are wrong!";
for (i=0;i<strlen(str2);i++)
str1[strlen(str1)]=*(str2+i);
printf("%s\n",str1);
getchar();
return 0;
}

2007-06-09 23:56
crz03128
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-5-22
得分:0 
以下是引用chyhome在2007-6-9 23:56:26的发言:
用指针这样连接:
#include<stdio.h>
#include<string.h>
int main()
{
int i;
char str1[50]="maybe you are right";
char *str2=" actually you are wrong!";
for (i=0;i<strlen(str2);i++)
str1[strlen(str1)]=*(str2+i);
printf("%s\n",str1);
getchar();
return 0;
}
str1[strlen(str1)]=*(str2+i);
这句看不懂啊,好像有调用的意思
好像没这么长吧

老师领进门,成长靠自己+虚心
2007-06-11 23:12
crz03128
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-5-22
得分:0 

己经很多天没解决了


老师领进门,成长靠自己+虚心
2007-06-12 22:28
百年不亮
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:789
专家分:0
注 册:2006-4-14
得分:0 
全部用指针实现的

#include<string.h>
#include<malloc.h>
#include<stdio.h>

char * Mystrcat(char * str_1,char *str_2);
int main()
{
char *string;
string = Mystrcat("hello ","word");
puts(string);
return 0;
}

char * Mystrcat(char * str_1,char *str_2)
{
char *array,*ptr;

ptr=array=(char *)malloc(strlen(str_1)+strlen(str_2));
while(*ptr++ = *str_1++) ;
ptr--;
while(*ptr++ = *str_2++) ;

return array;
}
2007-06-12 23:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-145809-1-1.html




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

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