C语言字符串函数入门

目录
  • 实现字符串库函数功能
    • 1.strlen函数
    • 2.strcmp函数
    • 3.strcpy函数
    • 4.strcat函数
    • 5.strupr函数
    • 6.strlwr函数
  • 总结

实现字符串库函数功能

有些时候我们可能会被限制无法使用库函数,这个时候我们需要编写自己的库函数。但了解了字符串库函数的功能之后,想要实现并不困难,今天我们用数组和循环来简单实现几个字符串库函数的功能。

1.strlen函数

strlen函数使用来求字符串长度的,遇到\0就会停止,并返回字符串的长度,接下来根据这个特性来编写一下我们自己的strlen

int my_strlen(char string[]) {
	int count= 0;
	while (string[count] != NULL) {
		count++;
	}
	return count;
}//也可以将while的判断条件改为string[count]

有些小伙伴应该知道递归的实现,但是这里涉及了指针的内容,我就不教大家实现了

2.strcmp函数

strcmp字符串比较函数,对两个字符串进行比较,相当返回0,前一个字符串大于后一个字符串会返回大于0的数,小于则返回小于0的数,至于具体返回多少,则需要看编译器。

在实现strcmp功能之前,我们需要了解它的机制,strcmp是一个字符一个字符的比较ASCII值的

int  my_strcmp(char string1[], char string2[]) {
	int i = 0;
	   //当两个字符串都没有达到末端时,继续比较
	while ((string1[i] == string2[i]) && string1[i] && string2[i])
		i++;
	return string1[i] - string2[i]; //当两个字符串指向的字符不一样或者到达终点时返回差值
}

一个简单的while循环就能达到目的

3.strcpy函数

字符串拷贝函数,将后一个字符串拷贝到前一个字符串中,我们需要保证目的地足够大

void my_strcpy(char string1[50], char string2[]) {
	int i = 0;
	while (string1[i++] = string2[i++]);
}
//这里利用了赋值表达式的特性,直接进行赋值,当string[i]为\0时赋值完循环自动停止
//当然这个程序并不是完美的,根据strcpy的返回值我们还可以这样修改
char* my_strcpy(char string1[50], char string2[]) {
		int i = 0;
		while (string1[i++] = string2[i++]);
		return string1;
}//返回目的地的起始地址

4.strcat函数

strcat字符串追加,在一个字符串之后追加一个新的字符串,如果以strcpy的角度理解就是以第一个字符串的\0位置为起始地址进行字符串拷贝,那么接下来就很简单了

char* my_strcat(char string1[50], char string2[]) {
	int i = -1;
	while (string1[++i]);//循环停止时i指向\0
	int j = 0;
	while (string1[i++] = string2[j++]); //与strcpy同理
	return string1;
}

5.strupr函数

strupr字符串大写函数,将所有字符串中的小写字母都变成大写,我们只需要根据ASCII值就可以简单实现

char*my_strupr(char string[]) {
	int i = 0;
	while (string[i]) {       //当string[i]指向\0时循环停止
		if (string[i] >= 'a' && string[i] <= 'z')
		string[i] -= 32;
		i++;
	}
	return string;
}

6.strlwr函数

和strupr对应,这是字符串小写函数,把大写转成小写,只需要对上面的代码简单一改就可以

char*my_strlwr(char string[]) {
	int i = 0;
	while (string[i]) {       //当string[i]指向\0时循环停止
		if (string[i] >= 'A' && string[i] <= 'Z')
		string[i] += 32;
		i++;
	}
	return string;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • c语言重要的字符串与内存函数

    目录 一.字符串函数 1. 求字符串长度的strlen 2.比较字符串大小的strcmp 3.复制字符串的strcpy 4.追加字符串的strcat 5.查找字符串函数的strstr 二.内存函数 1.复制 memcpy,memmove 2.比较 memcmp 一.字符串函数 1. 求字符串长度的strlen size_t strlen ( const char * str ); 字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0'

  • 实现C语言常用字符串库函数

    目录 strlen strcpy strcat strcmp 总结 strlen 数组长度的计算是通过strlen来的,它的作用就是判断给定的数组元素个数,直到碰到\0结束 函数原型 size_t strlen ( const char * str ); 废话少说,直接上代码 int my_strlen(char *str) { char* ch=str; int count=0; while(*ch!='\0') { count++; ch++; } return count; } 但考虑到安

  • C语言字符函数与字符串函数详解

    目录 本章重点 前言 1.strlen函数 注意点1 注意点2 2.strcpy 注意点1: 注意点2: 注意点3: 注意点4: 总结 本章重点 重点介绍处理字符和字符串的库函数的使用和注意事项 1.求字符串长度 strlen 2.长度不受限制的字符串函数 strcpy ,strcat, strcmp 3.长度受限制的字符串函数 strncpy,strncat ,strncmp 4.字符串查找 strstr,strtok 5.错误信息报告 strerror 6.字符操作 7.内存操作函数 mem

  • 详解C语言对字符串处理函数的实现方法

    目录 strlen: 1.计数器版本: 2.递归的版本 3.指针-指针版本 strcat: strcmp: 总结 strlen: 1.计数器版本: #include<stdio.h> #include<string.h> #include<assert.h> int my_strlen(const char *str) { int count =0; assert(str!=NULL); while(*str!='\0') { count++; str++; } ret

  • C语言实现常用字符串库函数(推荐)

    目录 一.实现memcpy 二.memmove模拟实现 三.strlen的模拟实现 1.计数器方法: 2.递归方式: 3.利用指针实现: 四.strcpy的模拟实现 五.strcmp的模拟实现 六.strstr模拟实现 七.模拟实现strcat 一.实现memcpy 将src所指向的内容拷贝到dst所指向的位置,拷贝len个字节. memcpy是内存拷贝函数 memcpy在使用的时候不用考虑类型,以字节为单位进行拷贝 遇到"\0"的时候不会停下,所以拷贝字符串的时候最好还是用strcp

  • C语言字符串函数入门

    目录 实现字符串库函数功能 1.strlen函数 2.strcmp函数 3.strcpy函数 4.strcat函数 5.strupr函数 6.strlwr函数 总结 实现字符串库函数功能 有些时候我们可能会被限制无法使用库函数,这个时候我们需要编写自己的库函数.但了解了字符串库函数的功能之后,想要实现并不困难,今天我们用数组和循环来简单实现几个字符串库函数的功能. 1.strlen函数 strlen函数使用来求字符串长度的,遇到\0就会停止,并返回字符串的长度,接下来根据这个特性来编写一下我们自

  • C语言字符串函数操作(strlen,strcpy,strcat,strcmp)详解

    目录 一.strlen函数模拟 二. strcpy函数模拟  三.strcat函数模拟 四.strcmp函数模拟 总结 一.strlen函数模拟 字符串以'\0'作为结束标志,strlen函数返回的是在字符串中'\0'前面出现的字符个数(不包括'\0'); 有三种方法可以实现该操作: ①计数器方式 ②不能创建临时变量计数器 ③指针-指针  方法一:计数器方式 int my_strlen(const char* str) { int count = 0;//定义count用来记录字符串数组中字符数

  • C语言字符串函数操作(strlen,strcpy,strcat,strcmp)详解

    目录 一.strlen函数模拟 二. strcpy函数模拟 三.strcat函数模拟 四.strcmp函数模拟 总结 一.strlen函数模拟 字符串以‘\0’作为结束标志,strlen函数返回的是在字符串中‘\0’前面出现的字符个数(不包括‘\0’); 有三种方法可以实现该操作: ①计数器方式 ②不能创建临时变量计数器 ③指针-指针 方法一:计数器方式 int my_strlen(const char* str) { int count = 0;//定义count用来记录字符串数组中字符数 w

  • C语言字符串函数与内存函数精讲

    目录 strlen strcpy strcat strcmp strncpy strncat strncmp strstr strtok strerror tolower\toupper memcpy memmove memcmp memset strlen 获取字符串长度. strlen - size_t strlen( const char *string ); 1.字符串以’\0’作为结束标志,strlen函数返回的是在字符串中’\0’前面出现的字符个数(不包含’\0’). 2.参数指向的

  • C语言字符串函数,字符函数,内存函数使用及模拟实现

    目录 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp 字符串查找函数 strstr strtok strerror 字符函数 字符分类函数 字符转换函数 内存操作函数 memcpy memmove memcmp memset 求字符串长度 strlen 函数功能 字符串长度,求一个字符串中字符的个数(不包含’\0’). 函数参数: size_t strlen( const ch

  • 基于C语言字符串函数的一些使用心得

    就字符串的拼接函数为例strcat.原型:extern char *strcat(char *dest,char *src);用法:#include <string.h>功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串.      返回指向dest的指针.举例: 复制代码 代码如下: // strcat.c      #include <syslib.h&

  • C语言字符串函数介绍与模拟实现详解

    目录 2. strcpy(复制字符串) 2.1 strncpy函数 2.2 模拟实现strcpy 3. strcat (追加字符) 3.1 strncat 函数 3.2 模拟实现strcat 4. strcmp(比较两个字符串内容) 4.1 strncmp函数 4.2 模拟实现strcmp 5. strstr (返回str1出现在str2位置处第一次的指针) 5.1 模拟实现strstr 6. strtok(分割字符串) 总结 1. strlen(求字符串长度) 这个函数就是求一个字符串的长度.

  • 盘点分析C语言中少见却强大的字符串函数

    目录 正片开始 字符串函数 strcpy strcat strcmp strstr strtok strerror 正片开始 字符串函数 首先神魔是字符串函数? 指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数. 功能:把src所指由NUL结束的字符串复制到dest所指的 数组 中. 返回指向dest结尾处字符 (NUL)的 指针 . 像之前我写到过的 strcpy,strcat,strcmp 这些函

  • C语言超详细讲解字符串函数和内存函数

    目录 字符串函数 长度不受限制的字符串函数 strlen strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 字符串查找以及错误报告 strstr strtok strerror 内存操作函数 memcpy memmove memcmp 字符串函数 长度不受限制的字符串函数 strlen size_t strlen ( const char * str ) 求字符串长度: 字符串以'\0' 作为结束标志,strlen函数返回的是在

  • C语言超全面讲解字符串函数

    目录 1.gets函数 2.puts函数 3.strcat函数 4.strcpy函数(strncpy函数) 5.strcmp函数(strncmp函数) 6.strlen函数 7.strlwr函数 8.strupr函数 9.strstr函数 注意:在使用字符串处理函数时,一定要使用#include <string.h>开头 1.gets函数 其形式为:gets(字符数组)——输入字符串的函数 作用是从终端输入一个字符串到字符数组,并且得到一个函数值. 2.puts函数 其形式为:puts(字符数

随机推荐