字符串处理函数---C语言学习笔记

回顾之前所学的格式字符,我们还记得:【注意区分】

输出字符串:char c[] = "China"; printf("%s\n", c);
 输出单个字符:printf("%c", c[i]);

在数组中,scanf函数中的输入项如果是字符数组名,不要再加地址符&,scanf("%s", c);

 接下来是字符串的有关处理函数:

 1、输出字符串函数:puts(字符数组)

 将一个字符串(以′\0′结束的字符序列)输出到终端,用puts函数输出的字符串中可以包含转义字符。
在用puts输出时将字符串结束标志′\0′转换成′\n′,即输出完字符串后换行。

#include <stdio.h>
int main()
{
	char str[] = { "ChinaBeijing" };
	puts(str);//输出完字符串以后自动换行
	printf("%s",str);
	return 0;
}

 2、输入字符串函数:gets()

从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
【注意:用puts和gets函数只能输出或输入一个字符串,不能同时输出或输入多个】 

#include <stdio.h>
int main()
{
	char str[6] = {0};
	gets(str);//只能输入5个字符,最后一个字符为\0,字符串结束标志
	puts(str);
	//printf("%s",str);
	return 0;
}

 3、字符串连接函数:strcat(字符数组1, 字符数组2)

 把两个字符数组中的字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中,
 函数调用后得到一个函数值——字符数组1的地址。字符数组1必须足够大,以便容纳连接后的新字符串。
 连接前两个字符串的后面都有′\0′,连接时将字符串1后面的′\0′取消,只在新串最后保留′\0′。

#include <stdio.h>
int main()
{
	char str1[30] = { "People′s Republic of " };
	char str2[] = { "China" };
	printf("%s", strcat(str1, str2));
	return 0;
}

 4、字符串复制函数:strcpy(字符数组1, 字符串2)  将字符串2复制到字符数组1中去

 字符数组1必须定义得足够大,以便容纳被复制的字符串2。字符数组1的长度不应小于字符串2的长度。 “字符数组1”必须写成数组名形式,“字符串2”可以是字符数组名,也可以是一个字符串常量。若在复制前未对字符数组1初始化或赋值,则其各字节中的内容无法预知,复制时将字符串2和其后的′\0′一起复制到字符数组1中,取代字符数组1中前面的字符,未被取代的字符保持原有内容。
不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。字符数组名是一个地址常量, 它不能改变值,正如数值型数组名不能被赋值一样。可以用strncpy函数将字符串2中前面n个字符复制到字符数组1中去。将str2中最前面2个字符复制到str1中,取代str1中原有的最前面2个字符。但复制的字符个数n不应多于str1中原有的字符(不包括′\0′)。

#include <stdio.h>
int main()
{
	char str1[10], str2[] = "China";
	strcpy(str1, str2); //或 strcpy(str1, "China");
	printf("%s",str1);
	return 0;
}

 5、字符串比较函数:strcmp(字符串1, 字符串2)   比较字符串1和字符串2。

 比较字符串1和字符串2。 字符串比较的规则是: 将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到′\0′为止。 (1) 如全部字符相同,则认为两个字符串相等; (2) 若出现不相同的字符,则以第1对不相同的字符的比较结果为准。 比较的结果由函数值带回。 (1) 如果字符串1的ASCII码的值与字符串2的ASCII码的值相同,则函数值为0。 (2) 如果字符串1的ASCII码的值>字符串2的ASCII码的值,则函数值为一个正整数。 (3) 如果字符串1的ASCII码的值<字符串2的ASCII码的值,则函数值为一个负整数。

#include <stdio.h>
#include <string.h>
int main()
{
	char ch1[] = "abc";
	char ch2[] = "fb";
	int ret = strcmp(ch1, ch2);
	printf("%d\n", ret);
	return 0;
}

 

6、转换为大小写的函数     strlwr(字符串)  将字符串中大写字母换成小写字母。  

                                           strupr(字符串)    将字符串中小写字母换成大写字母。

#include <stdio.h>
int main()
{
    char a[6] = "hello";
    strupr(a);
    printf("%s\n", a);
    return 0;
}

 

7、测字符串长度的函数:strlen(字符数组)

 测试字符串长度的函数。函数的值为字符串中的实际长度(不包括′\0′在内)。

#include <stdio.h>
#include <string.h>
int main()
{
	char str[10] = "China";
	printf("%d,%d\n", strlen(str), strlen("China"));
}

 

猜你喜欢

转载自blog.csdn.net/qq_69424518/article/details/127984378