C语言指针,求题目详解

C语言指针,求题目详解,第1张

您好,很高兴回答您的问题。

您的这个程序,主函数中的第一句话表示p1 和str都是数组名,指向数组中的第一个元素。p2是指针变量,指向的是字符型数据。第二句话表示p2这个指针变量指向的是包含有abc等三个元素的字符型数组。strcpy(str+1,strcat(p1,p2))表示现将p2所指向的内容添加到p1这个数组的结尾处,并且存放在p1中,那么做完之后p1里的内容为abcabc。接下来执行strcpy(str+1,p1)表示把此时p1中的内容拷贝到str中,是从str+1这个位置开始。因为str是数组名,指向的是数组的第一个元素,那么str+1,就是从str数组的第二个元素位置开始,所以最终得到的结果就是aabcabc。

以上就是我对这个问题的回答,希望您能帮助到您。

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

原来的题目是:有一函数,包含N个字符,写一函数,将此字符串从第M个字符开始的全部字符复制成为另一个字符串。我的疑惑写在代码后面。

#include<stdio.h>

void mn(char *p,int n)

{ int i,*q

for(i=0i<n-1i++)

p++

q=p

printf("the new string is:%s\n",q)

}

void main()

{ char *p

int n

printf("erter the string:")

gets(p)

printf("which location to start copy:")

scanf("%d",&n)

mn(p,n)

}

我想在主函数中另外写一个函数老保存第M个字符开始的字符串,并且在主函数中输出这个字符串 应该怎么修改代码?

解析:

按照你的思路改的程序

#include<stdio.h>

char * mn(char *p,int n)

{ int i

char *q

for(i=0i<n-1i++)

p++

q=p

printf("the new string is:%s\n",q)

getch()

}

void main()

{ char *p

int n

printf("erter the string:")

gets(p)

printf("which location to start copy:")

scanf("%d",&n)

printf("the new string is:%s\n",mn(p,n))

getch()

}

解释下我认为你不太明白的地方

第一,如果需要在主函数中输出,那么肯定需要返回值,函数类型就不能是void,

且输出的是字符串,返回的是指针,那么返回类型就是char *型的

第二,返回值是返回给调用处,因此需要把输出放在主函数里,也可以用一个变

量来接受返回值

第三,q是新串的指针,那么就应该是char *类型的


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12092577.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存