C语言学习笔记(7)——字符串函数

本文详细介绍了C语言中常用的字符串处理函数,包括字符串长度获取、连接、比较及复制等操作,并通过实例展示如何使用这些函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.strlen()函数

我们已经知道,用strlen ()函数可以得到字符串的长度。下面用到了strlen ()函数,这是
一个可以缩短字符串长度的程序:

#include <stdio.h>
#include <string.h>
void fit (char *,unsigned int);
int main(void )
{
	char mesg[] = "Hold on to your hats,hackers.";

	puts(mesg);
	fit(mesg,7);
	puts(mesg);
	puts("Let's look at some more of the string.");
	puts(mesg + 8);
	return 0;
	
}
void fit (char *string,unsigned int size)
{
	if(strlen(string) > size)
		*(string+size) = '\0';
}

输出结果如下:

Hold on to your hats,hackers.
Hold on
Let's look at some more of the string.
to your hats,hackers.

fit函数是在指定位置放下一个空字符,使得puts()显示时遇到那个空字符就停止了。

2.strcat()

strcat(代表string concatenation)函数接受两个字符串参数。它将第二个字符串的拷贝添加到第一个字符串的末尾,从而使得第一个字符串组合形成一个新的字符串,但是第二个字符串并没有被改变。

下面程序展示了该函数的功能

#include <stdio.h>
#include <string.h>
#define SIZE 80
int main(void )
{
	char flower[SIZE];
	char addon[] = "s smell like good.";

	puts("what is your favorite flower?");
	gets(flower);
	strcat(flower,addon);
	puts(flower);
	puts(addon);

	return 0;
}

结果如下:

what is your favorite flower?
Rose
Roses smell like good.
s smell like good.

strcat函数并没有考虑第一个字符串所在数组是否能容纳下第二个字符串,容易使得多出来的字符串溢出到其它内存空间,这时候要么做个长度检查工作,要么可以使用strncat函数,设置第三个参数,指明最多能添加的字符数,如strncat(flowers,addon,13);那么就会加到addon第十三个字符或遇到空字符为止。

3.strcmp()

strcamp(代表string comparison)是对字符串内容进行比较的函数。

#include <stdio.h>
#include <string.h>
#define ANSWER "keep"
#define MAX 40
int main(void )
{
	char t[MAX];

	puts("What is your need?");
	gets(t);
	while(strcmp(t,ANSWER))
	{
		puts("No,that's wrong, Try again.");
		gets(t);
	}
	puts("That's right!");

	return 0;
}

结果如下

What is your need?
money
No,that's wrong, Try again.
courage
No,that's wrong, Try again.
keep
That's right!

strncmp是其变种函数,多了第三个参数指定比较到第几位字符数,可以用来比较前面部分相同的字符串。

4.strcpy()

一般直接给指向字符串的指针赋值,都是复制字符串的地址,而不是本身。这时候就可以用strcpy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值