#include
#include
#include
void output(const char *s1) {
printf("The string is:");
printf("%s", s1);
printf("n------------------n");
}
//计算字符串长度函数
char my_strlen(const char *s2){
int i = 0;
while (*s2 != ' ') {
s2++;
i++;
}
printf("The length of string is:");
printf("%dn", i);
}
//字符串比较大小函数
char my_strcmp(const char *d, const char *s) {
while (*d == *s) {
d++;
s++;
if (*d == ' ') {
return 0;
}
}
return *d > *s ? 1 : -1;
}
//任意长度字符串比较大小函数
char my_strncmp(const char *s1, const char *s2, size_t n) {
while (*s1 == *s2 && (n--) && *s1 != ' ' && *s2 != ' ') {
s1++;
s2++;
}
if ((*s1 - *s2) == 0)
return 0;
else if ((*s1 - *s2) > 0)
return 1;
else
return -1;
}
//字符串长度连接函数
char *my_strcat(char *dest, const char *src) {
int i;
int j;
for (i = 0; dest[i] != ' '; i++) {}
for (j = 0; src[j] != ' '; j++,i++) {
dest[i] = src[j];
}
dest[i] = ' ';
return dest;
}
//任意字符串长度连接函数
char *my_strncat(char* dest, const char* src, size_t n) {
int i;
int j;
for (i = 0; dest[i] != ' '; i++) {}
for (j = 0; j < n && src[j] != ' '; j++, i++) {
dest[i] = src[j];
}
dest[i] = ' ';
return dest;
}
//字符串长度拷贝函数
char *my_strcpy(char *dest, const char *src) {
int i;
for (i = 0; src[i] != ' '; i++) {
dest[i] = src[i];
}
dest[i] = ' ';
return dest;
}
//任意字符串长度拷贝函数
char *my_strncpy(char *dest, const char *src, size_t n) {
int i;
for (i = 0; src[i] != ' ' && i < n; i++) {
dest[i] = src[i];
}
for (; i < n; i++)
dest[i] = ' ';
return dest;
}
int main() {
const char *src = "Cai cai kun is the sleaziest!";
char dest[56] = {};
output(src);
my_strlen(src);
printf("-----------------n");
my_strcmp(dest, src);
printf("%dn", my_strcmp(dest, src));
printf("%dn", strcmp(dest, src));
printf("%dn", my_strcmp("Cai cai kun is the sleaziest!",src));
printf("%dn", my_strcmp("Cai is the sleaziest!",src));
printf("-----------------n");
int N = 0;
my_strncmp(dest, src, N);
printf("%dn", my_strncmp("Cai cai is the sleaziest!", src, 3));
printf("%dn", my_strncmp("Cai cai kun is the weakest!", src, 20));
printf("%dn", strncmp("Cai cai kun is the weakest!", src, 20));
printf("-----------------n");
// 字符串在比较之后有可能返回字符之间的ASCII差值
my_strcat(dest, src);
printf("Before: %sn", src);
printf("Before: %sn", dest);
bzero(dest, 56);
printf("After bzero: %sn", dest);
printf("After strcat: %sn", my_strcat(dest, "cai xu kun"));
printf("-----------------n");
my_strncat(dest, src, N);
printf("Before: %sn", src);
printf("Before: %sn", dest);
bzero(dest, 56);
printf("After bzero: %sn", dest);
printf("After strncat: %sn", my_strncat(dest, "cai xu kun", 5));
printf("-----------------n");
printf("Before: %sn", src);
printf("Before: %sn", dest);
bzero(dest, 56);
printf("After bzero: %sn", dest);
my_strcpy(dest, src);
printf("After strcpy: %sn", my_strcpy(dest, src));
printf("-----------------n");
my_strncpy(dest, src, N);
printf("Before: %sn", src);
printf("Before: %sn", dest);
bzero(dest, 56);
printf("After bzero: %sn", dest);
printf("After strncpy: %sn", strncpy(dest, src, 11));
return 0;
}
暑期编程PK赛 得CSDN机械键盘等精美礼品!


