首页 > 其他分享 >字符函数和字符串函数:strcmp、strncpy——《初学C语言第37天》

字符函数和字符串函数:strcmp、strncpy——《初学C语言第37天》

时间:2023-12-24 15:00:57浏览次数:49  
标签:函数 str2 str1 37 C语言 char num 字符串 include

//////————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

相关文章

  • C++ 内联函数
    @TOC前言内联函数(InlineFunctions)是C++中一个重要的编程概念,它允许开发者在代码中使用一种特殊的方式来声明和定义函数,以提高程序的性能和可维护性。本文将详细讨论C++中的内联函数,包括如何定义、为何使用、以及其潜在优缺点。1.内联函数的基本概念内联函数是一种特殊的C++函数,通......
  • Day37 数组的定义、声明和创建
    数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.​(数组的下标是从0开始的!!!!!!)数组的声明和创建1.首先必......
  • SQL的right()函数
    RIGHT()是SQL中的一个字符串函数,用于从字符串的右侧返回指定数量的字符。使用场景:提取字符串右侧的字符:当你有一个字符串,并希望从中提取出右侧的某些字符时,可以使用RIGHT()函数。固定长度的字符串处理:当你处理固定长度的字符串,并需要提取其中的一部分时,可以使用RIGHT()......
  • Typescript 函数详解
    前言虽然JS/TS支持面向对象编程,但大部分时候还是在写函数。函数是一等公民。本文介绍下如何在TypeScript中使用函数,包括:函数类型声明函数参数类型:可选参数、默认参数、剩余参数函数返回值类型this类型函数重载函数类型面试中经常会被问到,JS中有哪几种数据类型。其中就会有函......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • Go 语言学习指南:变量、循环、函数、数据类型、Web 框架等全面解析
    学习基础知识掌握Go语言的常见概念,如变量、循环、条件语句、函数、数据类型等等。深入了解Go基础知识的好起点是查阅Go官方文档文章链接:Go编程语言详解:用途、特性、与Python和C++的比较基本语法了解Go语言的基本语法,包括Go程序的执行方式、包引入、主函数等Go......
  • SAP ABAP 更新函数(Update Function Module)执行出错的原因分析试读版
    本教程前一篇文章,我们已经介绍了SAPABAPUpdateWokeProcess和UpdateFunctionModule的基本概念。129.SAPABAPUpdateProcess(更新进程)的概念和设计动机解析回到笔者知识星球朋友的提问:我们通过一个实战例子来消化前一篇文章学到的理论知识。本教程之前介绍了SA......
  • re | 通过C语言编写shellcode(vc6)
    re|通过C语言编写shellcode(vc6)接上一篇博客:https://www.cnblogs.com/Mz1-rc/p/17923224.html对上文中代码进行修改,不使用全局字符串,不使用外部函数调用,关闭/GZ编译选项(栈检查):#include<stdio.h>#include<windows.h>typedefint(WINAPI*PMESSAGEBOXA)(HWNDhWnd,LPCST......
  • PTA|C语言|指针
    计算最长的字符串长度本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。函数接口定义:intmax_len(char*s[],intn);其中n个字符串存储在s[]中,函数max_len应返回其中最长字符串的长度。裁判测试程序样例:#include<stdio.h>#include<string.h>#include......
  • 无涯教程-PL/SQL - GOTO函数
    PL/SQL编程语言中的GOTO语句提供了从GOTO到同一子程序中带标签的语句的无条件跳转。注意-在任何编程语言中均不建议使用GOTO语句,因为它会使跟踪程序的控制流变得困难,从而使程序难以理解且难以修改。GOTO-语法PL/SQL中的GOTO语句的语法如下-GOTOlabel;....<<label>>......