C语言复习笔记(常用字符串处理函数)

使用时需要加上预处理命令

#include <string.h>

字符串连接函数strcat

使用方法
strcat(str1,str2)
功能:
连接两个字符数组,返回值是字符数组1的首地址。

//strcat函数 
#include<stdio.h>
#include<string.h>
//strcat
int main()
{
	char str1[10] = "hello";
	char str2[10];
	printf("please input string:\n");
	gets(str2);
	strcat(str1,str2);
	puts(str1);
	return 0;
}

连接方式图示:
在这里插入图片描述
注意:
前一个字符数组的长度要足够,否则会报错。

字符串复制函数strcpy


使用方法
strcpy(str1,str2)
功能:
把字符串2重点字符串复制到字符数组1中,字符串结束的’\0‘也一同复制。

#include<stdio.h>
#include<string.h>

int main()
{
	char str1[10] = "hello";
	char str2[10];
	printf("please input string:\n");
	gets(str2);
	strcpy(str1,str2);
	puts(str1);
	return 0;
}

注意
1、使用strcpy函数时,复制目标数组的长度需要可以容纳被复制的长度。
2、如果对字符串进行赋值操作,只可以使用strcpy函数而不可以直接使用"="进行赋值。否则会报错。

字符串比较函数strcmp


使用方法
strcmp(str1,str2)
功能:比较两个字符串的大小,并由函数值返回比较结果。结果为以下几种情况。

  1. 如果是str1 = str2,返回值为0;
  2. 如果str1 > str2 ,返回值为正整数;
  3. 如果str1 < str2 ,返回值为负整数。

字符串大小的比较方法为:对两个字符串从左至右按字符的ASCII码值大小逐个字符相比较,直到出现不同的字符或遇到"\0"为止,也就是说,当出现第一对不相等的字符时,由这两个字符的大小决定字符串的大小。

这个函数经常用来判断字符串是否相等。

//判断str1和str2是否相等
#include<stdio.h>
#include<string.h>

int main()

{	
	char str1[10] = "hello";
	char str2[10];
	printf("please input str2:\n");
	gets(str2);
	int k;
	k = strcmp(str1,str2);
	if(k==0)
	
		printf("same");
	
	else
	
		printf("different");
	
	return 0;
}

字符串长度函数strlen

使用方法
strlen(str1)
功能:
求字符串的实际长度,不包括’\0’

#include<stdio.h>
#include<string.h>

int main()

{
	char str1[10] ;
	int k;
	printf("please input a string:\n"); 
	gets(str1);
	k = strlen(str1);
	printf("\nstr1的长度为:%d",k);
	return 0;
}

程序问题:
输入一行字符串,统计其中有多少个单词,每个单词之间由空格隔开。

需要判断:

  1. c不是空格且c前面的是空格,则新单词出现
//统计单词个数
#include<stdio.h>
#include<string.h>

int main()

{
	char str1[20],c;
	int i,num=0,flag = 0;
	printf("please inuput a string:\n");
	gets(str1);
	for(i=0;(c = str1[i])!='\0';i++)
	{	
		if(c == ' ')
			num=0;
		else if(num==0)
		{
			num = 1;
			flag++;
		}
	}
	printf("there are %d words in this string",flag);
	return 0;
 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的CR7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值