字符串简单操作典型例题

本文介绍了字符串的一些基本操作,包括统计字符串中的单词数量、复制字符串的前n位、字符与数字之间的转换以及字符串的相等性比较。通过实例演示,帮助理解这些常见操作的应用。
摘要由CSDN通过智能技术生成

统计字符串中单词的个数

int NumWord(char *str)
{
	assert(str != NULL);
	int count = 0;
	while (*str != 0)
	{
		if (isalpha(*str) && !isalpha(*(str + 1))  //isalpha()是一个判断字符是否为英文字母的函数
		{
			count++;
		}
		str++;
	}
}

将一个字符串的前n位复制到新的字符串中

char *My_strncpy(char *dest, char *src, int n)
{
	assert(dest != NULL && src != NULL);
	assert(n > 0 && n < strlen(src));
	char *p = dest;
	for (int i = 0; *src != '\0'&&i < n; i++)
	{
		dest[i] = src[i];
	}
	return p;
}

将字符转化为数字

int My_atoi(char *str)将字符串转化为数字
{
	int num = 0;
	while (*str = ' ')
	{
		str++;
	}
	while (*str == '-')
	{
		printf("-");
		str++;
	}
	while (isdigit(*str))   //isdigit()是一个检查参数是否为十进制数字字符的函数
	{
		num = num * 10 + (*str - '0');
		str++;
	}
	return num;
}

将数字转化为字符

char *My_itoa(char *str, int num)
{
	int i = 0;
	while (num != 0)
	{
		str[i] = num % 10 + '0';
		num = num / 10;
		i++;
	}
	str[i] = '\0';//手动赋值
	i--;
	for (int j = 0; j < i; j++, i--)//逆置
	{
		char ch = str[j];
		str[j] = str[i];
		str[i] = ch;
	}
	return str;
}

比较两个字符串是否相等

int My_strcmp(const char *str1, const char *str2)
{

	int tmp = 0;
	while ((tmp = *str1 - *str2) == 0 && *str2 != '\0')//比较的是ASCII值
	{
		str1++;
		str2++;
	}
	return tmp;
}

比较两个字符串的前n个字符是否相等

int My_strcmp(const char *str1, const char *str2, int n)
{

	int tmp = 0;
	int i = 1;
	while ((tmp = *str1 - *str2) == 0 && *str2 != '\0'&&i < n)
	{
		str1++;
		str2++;
		i++;
	}
	return tmp;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值