C程序设计语言,练习5-5
测试结果与代码如下,有bug欢迎指正!
代码:
#include <stdio.h>
void strncpy(char *s,char *t,int n);
void strncat(char *s,char *t,int n);
int strncmp(char *s,char *t,int n);
int main()
{
char s[100];
char *t = "hello world!";
int cmp;
strncpy(s,t,5);
printf("strncpy:\ns:%s\nt:%s\n",s,t);
strncat(s,t,5);
printf("strncat:\ns:%s\nt:%s\n",s,t);
cmp = strncmp(s,t,5);//比较前五个字符
printf("strncmp:\ns:%s\nt:%s\n",s,t);
printf("cmp:%d\n",cmp);
return 0;
}
void strncpy(char *s,char *t,int n)
{
int i = 0;
while(*t != '\0' && i++ < n)
*s++ = *t++;
*s = '\0';
}
void strncat(char *s,char *t,int n)
{
int i = 0;
while(*s++ != '\0')
;
s--;
while(*t != '\0' && i++ < n)
*s++ = *t++;
*s = '\0';
}
int strncmp(char *s,char *t,int n)
{
int i = 0;
while(*s == *t && i++ < n)
if(*s == '\0')
return 0;
return *s - *t;
}