C语言用指针编程实现strcat函数的功能

作者&投稿:季贪 (若有异议请与网页底部的电邮联系)
自己编程实现strcat()函数的功能,用指针作为函数参数实现字符串的连接 怎么编写?麻烦解答一下啊??~

void strcat(char *p,char *q)
{char *point=p;
while(*point)
point++; /* 移到字符串末尾 */
while(*q)
{*point=*q; /* 连接 */
point++;
q++;
}
*q='\0'; /* 结束符 */
}

当然了,你看看你这个函数的最后一句
*p='\0';
return(p);
p自然指向的是一个'\0’了,应该直接printf(ch1);
还有你这个程序逻辑也是由问题的(我试了一下),自己去看看

1、首先打开vs2014,新建一个项目。

2、添加头文件。

3、添加main主函数。

4、定义一个函数addTwoNumbers。

5、在main函数定义a,b,sum。

6、声明函数指针ptr_sum。

7、将addTwoNumbers函数地址赋值给ptr_sum。

8、运行程序,看看结果。



#include<stdio.h>

#include<assert.h>

void my_strcat( char *arr1,const char *arr2)

{

char* ret=arr1;

const char* dst=arr2;

assert(arr1);

assert(arr2);

while(*ret)00  

{//将指针所指目标转移到未赋值的字符位置

ret++;

}

while(*dst)

{

*ret = *dst;

dst++;

ret++;

}

*ret=*dst;   //将' \0 '拷贝到arr1中

printf("%s
",arr1);

}

int main()

{

char arr1[32]="I am a ";

const char arr2[]="good student!";

my_strcat(arr1,arr2);

return 0;

}

运行效果:

扩展资料:

其它方法:

#include<stdio.h>

#include<string.h>

#include<assert.h>

void my_strcat( char* arr1, const char* arr2,int n)

{

char* p = arr1;

char* q =(char *)arr2;

assert(arr1);

assert(arr2);

p = p + n;

while( *q!= '\0')

{

*p = *q;

p++;

q++;

}

*p = *q;

printf("%s
",arr1);

}

int main()

{

char arr1[32]="I am a";

const char arr2[]=" good boy!";

int n=strlen(arr1);

my_strcat(arr1,arr2,n);

return 0;

}



具体见下图:

其中char *strcat(char *str1,char *str2);是strcat函数实现的方法,main函数用于测试strcat准确性,具体如上!



#include <stdio.h>

//strcopy(char *str1,char *str2)
char* strcopy(char *str1,char *str2)
{
/* while((*str1)!='\0')

*str1++;
while((*str2)!='\0')
{
*str1++=*str2++;
}
*str1='\0';
}
*///逻辑有问题
//先让str1指向字符串尾
char *p = str1;//存储连接后的字符串首部
while(*str1 != '\0')
++str1;
while(*str1++ = *str2++)
;
return p;//返回连接后的字符串指针
}

void main()
{
// char str1[10],str2[10];
char str1[100],str2[10];
printf("str1:
");
gets(str1);
printf("str2:
");
gets(str2);
printf("连接后:%s
",strcopy(str1,str2));

}

执行结果:



#include <stdio.h>

char *strcopy(char *str1,char *str2)

{

 char *p = str1;

 while((*str1)!='\0') str1++;

  while((*str2)!='\0')

  {

   *str1++=*str2++;

  }

  *str1='\0';

  return p;

}

void main()

{

 char str1[20],str2[10]; //开辟大一点的空间

 printf("str1:
");

 gets(str1);

 printf("str2:
");

 gets(str2);

 printf("连接后:%s
",strcopy(str1,str2));

 

}




c语言如何使用指针?
int main(){ int *p1,*p2,*p;scanf("%d %d",&a,&b);int a=2,b=5;p1=&a;p2=&b;if(a

c语言编程实现,从键盘上输入8个数,求出最大值和最小值用指针传递数组...
} 这段 C 语言代码实现了从键盘上输入 8 个数,并使用指针传递数组来找到这些数中的最大值和最小值。

C语言编程:用指向指针的指针的方法对n个整数排序并输出。
用指向指针的指针的方法对n个整数排序并输出的具体编程步骤如下:1、编写头函数:#include <stdio.h>。2、编写条件函数:void sort(int **p,int n){ int i,j,temp;for(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++){ if(*p[j]>*p[j+1])\/\/或者是*(*(p+j))>*(*(p+j+1)){...

如何用C语言实现用指针输出变量值?
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:int q = 10;int* p = &q;printf("%d\\n", *p); 。3、编译器运行test.cpp文件,此时成功输出了指针p所指向的变量q的值。

C语言编程、以函数方式用指针实现。将字符串s2的前n个字符连接到s1的...
C语言编程、以函数方式用指针实现。将字符串s2的前n个字符连接到s1的尾部 10 如果n大于s2的长度,则仅将s2全部复制即可。函数形式:int my_strncpy(char *s1,char *s2,int n),其中函数返回值为最终连接到s1的字符数。xxd520000 | 浏览1253 次 |举报 我有更好的答案...

如何用c语言编写一个指针变量?
在C语言中,指针变量是一个存储其他变量地址的变量。以下是如何在C语言中声明和初始化一个指针变量的示例:在这个例子中,我们首先声明并初始化了一个整数变量 num。然后,我们声明了一个指针变量 ptr。接着,我们使用 & 运算符获取 num 的地址,并将这个地址赋值给 ptr。最后,我们使用 printf 函数...

C语言实验六实验报告——指针
6.能够使用指针进行程序设计。三、实验内容有关指针的程序设计1.编程实现:任意输入的10个数,求其平均值。要求:(1)10个数采用scanf语句读入。(2)利用指针实现对这10个数的访问。(3)要求平均值的精度为小数后面2位。 2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入...

C语言编程实现:读入20个数据到数组中,统计其中正数的个数,并计算它们之...
{ int arr[ 20 ], i, sum = 0,count = 0;int * p = arr;for( i=0; i<20; i++, p++ ){ scanf( "%d", p );if( *p > 0 ){ sum += *p;count++;} } printf( "正数有%d个,它们的总和是%d\\n", count,sum );return 0;} 使用指针的优点是代码比数组灵活 简单一些。

c语言用一维数组和指针作为函数参数编程实现学生成绩信息统计?
下面是一个可以用一维数组和指针实现学生成绩信息统计的例子:include <stdio.h> define NUM_STUDENTS 5 define NUM_GRADES 3 void print_grades(int *grades) { printf("Grades: ");for (int i = 0; i < NUM_STUDENTS * NUM_GRADES; i++) { printf("%d ", grades[i]);} printf("\\n...

C语言用指针将小写字母变为大写字母
1、首先需要新建一个工程。2、然后在工程中输入头文件。3、然后需要输入主函数。4、添加函数主体部分,变量必须先定义类型再使用。5、输入变量的值,注意这里scanf里变量名前必须加&,末尾必须加分号。6、输入函数主体部分并输出。7、点击编译按钮,查看是否有错误。8、无错误就点感叹号直接运行。

盐田区17249911478: 急求..用指针方法编写函数strcat,用两个字符串连接起来,用c语言编程 -
竹谢爱若: void strcat(char *s1,char *s2) { while(*s1)s1++; while(*s1++=*s2++); }

盐田区17249911478: c语言//用指针型函数(函数返回值为指针)实现字符串连接函数strcat()的功能,将两个字符串连接起来
竹谢爱若: 当然了,你看看你这个函数的最后一句 *p='\0'; return(p); p自然指向的是一个'\0'了,应该直接printf(ch1); 还有你这个程序逻辑也是由问题的(我试了一下),自己去看看

盐田区17249911478: c语言指针实现字符拼接函数strcat -
竹谢爱若: while(*a!='\0'){ //其实你每次都是判断a[0]!='0'这当然是个无限循环啦 c[i]=a[i]; i++; } 你这代码我觉得用的数组知识更多,看我写的字符串拼接函数,希望对你有帮组#include<stdio.h>void mystrcat(char *s,char *ct) //字符串连接 { while(*(s++)); s--;...

盐田区17249911478: 求c语言答案 实现系统函数strcat,使用字符数组和指针两种方法实现 -
竹谢爱若: 指针实现: char *mystrcat(char *s,char *ct) //字符串连接 { while(*(s++)); s--; while(*ct) *(s++) = *(ct++); return s; } 数组实现: #include<stdio.h> void mystrcat(char s[],char ct[]) //字符串连接 { int i; int length1 = 0,length2 = 0; while(s[length1++]); while(...

盐田区17249911478: 求高手给编个c程序,用数组、指针编程实现字符串连接函数strcat()的功能,将字符串srcStr -
竹谢爱若: #include <stdio.h> char *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数 { char *address = strDest; //该语句若放在assert之后,编译出错 assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加...

盐田区17249911478: C 使用指针编写函数strcat(),实现两个字符串的首尾连接(将字符串str2接到str1的后面,str1最后面的'\0'被取消) -
竹谢爱若: void strcat(char *str1,char *str2) {int i,m=0; while(str1[m]!='\0') m++; //求数组str1长度 i=0; while(str2[i]!='\0') {str1[m+i]=str2[i];i++;} //将字符串str2中有字符依次装入字符串str1中 str1[m+i]='\0'; }

盐田区17249911478: C语言编程 mystrcat函数 -
竹谢爱若: char *mystrcat(char *str1, char *str2) { char *p; for(p=str1;*p!='\0';p++); for(;*str2!='\0';p++,str2++) *p=*str2; *p='\0'; return str1; }

盐田区17249911478: c语言里面编写一个字符串连接的函数,用指针实现. char *mystrcat(char *s, -
竹谢爱若: char *mystrcat(char *s,char *ct) //字符串连接 { while(*(s++)); //遍历到字符串s的末尾包括\0 s--; //将指针左移一下,指到\0之前 while(*ct) //如果字符串ct中还有值循环 *(s++) = *(ct++); //将当前ct指向的字符赋给s指向的位置,然后两指针都右移一位 return s; //返回拼接好的字符串s }

盐田区17249911478: 自己编程实现strcat()函数的功能,用指针作为函数参数实现字符串的连接 怎么编写?麻烦解答一下啊?? -
竹谢爱若: void strcat(char *p,char *q) {char *point=p; while(*point) point++; /* 移到字符串末尾 */ while(*q) {*point=*q; /* 连接 */ point++; q++; } *q='\0'; /* 结束符 */ }

盐田区17249911478: 今天我编了一个小程序以完成C语言中的字符串连接函数“strcat”的功能,于是想到了指针来实现.但最后程序 -
竹谢爱若: 自己对照看一下.main() { char a[22]={"hoello!"},b[15]={"how do you do?"},*p=a,*q=b; int i; for(i=0;i*(p+i+6)=*(q+i); printf("%s\n%s\n",a,p); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网