//////————strcmp(比较两个字符串(的内容,ASCII值))————>头文件#include<string.h>
//第一个字符串大于第二个字符串,则返回大于0的数字
//第一个字符串等于第二个字符串,则返回0
//第一个字符串小于第二个字符串,则返回小于0的数字
//那么如何判断两个字符串?
//比较方法:下标逐步增加,每增加一位比一次.例如:abcd和abq,ab均相等,q>c,则abq>abcd
//#include<string.h>
//#include <stdio.h>
//int main()
//{
// char arr1[] = "abcd";
// char arr2[] = "abcw";//切记不可以直接使用数名进行比较,因为数组名表示首字符地址,
// //地址+储存的空间必然是不同的,所以采取函数石头人触摸屏函数
// int ret = strcmp(arr1,arr2);
// if (ret < 0)
// printf("<\n");
// else if (ret == 0)
// printf("==\n");
// else
// printf(">\n");
// return 0;
//}
////模拟实现一个strcmp函数——my_strcmp
//#include<stdio.h>
//#include<assert.h>
//int my_strcmp(const char* str1,const char* str2)
//{
// assert(str1 && str2);
// while (*str1 == *str2)
// {
// if (*str1 == '\0')
// return 0;//相等
// str1++;
// str2++;
// }
//////while部分可替换为
////int my_strcmp(const char* str1, const char* str2)
////{
//// assert(str1 && str2);
//// while (*str1 == *str2)
//// {
//// if (*str1 == '\0')
//// return 0;//相等
//// str1++;
//// str2++;
//// }
//// return *str1 - *str2;
////}
//int main()
//{
// char arr1[20] = "abcd";
// char arr2[10] = "abcw";//切记不可以直接使用数名进行比较,因为数组名表示首字符地址,
// //地址+储存的空间必然是不同的,所以采取函数石头人触摸屏函数
// int ret = my_strcmp(arr1, arr2);
// if (ret < 0)
// printf("<\n");
// else if (ret == 0)
// printf("==\n");
// else
// printf(">\n");
// return 0;
//}
////注意:
////————长度不受限制的字符串函数
////strcpy(一直执行到'\0为止)
////strcat(一直执行到'\0为止)
////strcmp(不一定干到\0,当不相等的时候就停下来,也会有干到\0的情况)
////存在潜在问题
////1.目标空间小于源数据空间(越界访问,程序崩溃,但是会拷贝过来)
////————长度受限制的字符串函数(相对比较安全)
////strncpy
////strncat
////strncmp
//////————————————————strncpy
////(有两个判断1.如果源字符串的长度足够,就拷贝num个。2.如果长度不够,就补充\0,直至满足num个)
////char* strncpy(char* destination,const char* source,size_t num)
////char* destination:目标数据
////const char* source:源头数据
////size_t num:字节数(你要拷贝几个字节)
////拷贝num个字符从源字符串到目标空间。
////如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边补充\0,直到num个,但是补充的\0不会打印出来。
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//int main()
//{
// char str1[20] = "abcdefghijk";
// char str2[20] = "hello word";
// strncpy(str1, "To o", 9);//num=9为字节数(你要拷贝几个字节)
// puts(str1);//printf("%s\n", name)和puts(name)一样
// return 0;
//}
//模拟实现strncpy
//#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//#include <string.h>
//#include<assert.h>
//int my_strncpy(const char*str1,const char*str2,size_t num)
//{
// char* ret = str1;
// while(*str2++<=str2[num])
// assert(str1 && str2);
// while(*str1++ == *str2++)
// ;
// return ret;
//}
//int main()
//{
// char str1[20] = "abcdefghijk";
// char str2[20] = "hello word";
// size_t num = 9;
// strncpy(str1, "To o", 2);//num=9为字节数(你要拷贝几个字节)
// puts(str1);//printf("%s\n", name)和puts(name)一样
// return 0;
//}
标签:函数,str2,str1,37,C语言,char,num,字符串,include From: https://blog.51cto.com/KKhahaha/8955937