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

如果n大于s2的长度,则仅将s2全部复制即可。函数形式:int my_strncpy(char *s1,char *s2,int n),其中函数返回值为最终连接到s1的字符数。

用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");这里只是为了方便测试

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

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