Encuentra la longitud de la cuerda.
1.stren
size_t strlen(const char* str)
La cadena termina en '\0' y la función strlen devuelve el número de caracteres que aparecen antes de '\0' en la cadena (sin incluir
Contiene '\0' )
La cadena a la que apunta el parámetro debe terminar en '\0'
Tenga en cuenta que el valor de retorno de la función es size_t, que no está firmado
A continuación se muestra el código directamente (simulando la función strlen):
En esta matriz arr, hay principalmente cuatro elementos del bit \0, por lo que dejamos que nuestro *str se mueva hacia atrás en la función my_strlen hasta el final de \0. Esto es lo que estamos simulando con la función strlen, que termina con el indicador \0 , cuenta el número de elementos antes de \0
2.stracpy
char* strcpy(char * destino, const char * fuente)
Copia la cadena C apuntada por el origen en la matriz apuntada por el destino, incluido el
terminar el carácter nulo (y detenerse en ese punto)
La cadena de origen debe terminar con '\0'.
Copiará '\0' en la cadena de origen al espacio de destino.
El espacio de destino debe ser lo suficientemente grande para contener la cadena de origen.
El espacio objetivo debe ser mutable.
Aquí explicamos: strcpy (función de propósito, función de origen)
Entonces, en la función strcpy, podemos saber que \0 se puede copiar en la función strcpy
Demostración de error: (el espacio objetivo debe ser lo suficientemente grande)
En esta matriz, arr2 solo puede almacenar 3 elementos, y tenemos elementos como abcdefghi \0 en arr1, por lo que los elementos de arr1 no se pueden colocar en arr2, lo que genera un error.
3. roto
char * strcat (char * destino, const char * fuente)
Appends a copy of the source string to the destination string. The terminating null character
in destination is overwritten by the first character of source, and a null-character is included
at the end of the new string formed by the concatenation of both in destination.
源字符串必须以 '\0' 结束。
目标空间必须有足够的大,能容纳下源字符串的内容。
目标空间必须可修改
这里我们解释一下:在这个函数中我们可以把arr2中的元素存放在arr1元素的后面,而在这个过程中,我们arr1的数组必须足够大,而且是以\0为标志才能存放到源字符串的后面
4.strcmp
int strcmp ( const char * str1, const char * str2 )
This function starts comparing the first character of each string. If they are equal to each
other, it continues with the following pairs until the characters differ or until a terminating
null-character is reached.
标准规定:
第一个字符串大于第二个字符串,则返回大于0的数字
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字
strcmp函数中,我们是依次比较元素的ASCII码值的大小,如果arr1中ASCII码值大于arr2中ASCII码值则打印 > 号,反之,如果相等则打印0
这里我们是a与a比较,b与b比较,z与q比较
5.strstr
char * strstr ( const char *str1, const char * str2)
Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of
str1
strstr函数中,我们是在arr1中元素找arr2的元素,而这些元素中,我们是找第一次出现的元素,从而打印出arr1中元素的地址
以上就是我们字符函数的上篇,明天后天我会更新出下篇,喜欢的话请三连留下您的关注哦!!!