C语言编程、以函数方式用指针实现。将字符串s2的前n个字符连接到s1的尾部

如果n大于s2的长度,则仅将s2全部复制即可。函数形式:intmy_strncpy(char*s1,char*s2,intn),其中函数返回值为最终连接到s1的字符数。... 如果n大于s2的长度,则仅将s2全部复制即可。函数形式:int my_strncpy(char *s1,char *s2,int n),其中函数返回值为最终连接到s1的字符数。 展开
 我来答
huzhaomu945
2011-12-18 · TA获得超过477个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:187万
展开全部
用C语言编的,为了方便测试,写完了整个程序:
#include<stdio.h>
int my_strncpy(char *s1,char *s2,int n)
{
int i,j=0;
while(s1[j]!='\0') j++; /*指向a的末尾 */
for(i=0;i<n;i++,j++) s1[j]=s2[i];/*循环n次把s2中前n个元素赋给s1末尾 */
return j;
}

main()
{
int i=0,n,count;
char s1[12]="Iam_",s2[10]="not_bad";/*定义两个数组 */
clrscr();
printf("input n:");
scanf("%d",&n);/*输入n值 */
while(s2[i]!='\0') i++;/*i的值等于s2的长度*/
if(n>i) n=i; /*判断:若n大于i即大于s2的数组长度,则令n=i */

count=my_strncpy(s1,s2,n);
puts(s1);
puts(s2);
printf("%d",count);/*count为把s2赋给s1末尾后s1的总长度*/
getch();
}

追问
clrscr();
这是什么,貌似错了
追答
这是清屏函数,等价于VC里的system("cls");这里只是为了方便测试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式