C语言比较字符串

库函数strcmp是C语言中比较字符串的函数。
在头文件string.h中

int strcmp(char *a, char *b);
int strncmp(char *a, char *b, N);  //比较前N位

这个函数按照ASCII码表对两个字符串的每个字符进行比对。如果二者完全相同返回0,
如果字符串a中的字符ASCII码先出现较大者,则返回1,反之返回-1;

在C语言中,如果你想比较两个字符串并忽略其中的空格,可以采取以下几种方法: 1. 使用`strspn()`和`strlen()`函数:`strspn()`找出第一个字符串中到第二个字符串结束的所有非空白字符的位置,然后从这个位置开始使用`strlen()`计算非空格部分的实际长度。例如: ```c #include <string.h> int compare_strings_with_spaces(const char *str1, const char *str2) { size_t len1 = strspn(str1, " \t\n"); // 找出str1中所有空格后的长度 size_t len2 = strspn(str2, " \t\n"); // 对str2同样操作 if (len1 == 0 && len2 == 0) return strcmp(str1, str2); // 如果两者都是全为空格,则直接比较 return strncmp(str1 + len1, str2 + len2, strlen(str1) - len1); // 否则忽略空格比较剩余部分 } ``` 这里`strncmp()`用于比较两个已截取掉空格的部分。 2. 使用循环遍历:遍历每个字符,跳过空格,直到遇到非空格字符为止。这种方法稍微复杂些,因为需要手动处理: ```c int compare_strings_with_spaces_loop(const char *str1, const char *str2) { while (*str1 != '\0' && isspace(*str1)) str1++; // 移动到str1的第一个非空格字符 while (*str2 != '\0' && isspace(*str2)) str2++; // 对str2做同样的操作 while (*str1 != '\0' && *str2 != '\0') { if (*str1 > *str2) return 1; else if (*str1 < *str2) return -1; str1++; str2++; } return *str1 == *str2 ? 0 : *str1 < *str2 ? -1 : 1; // 如果一个字符串到达末尾而另一个没到,返回剩余字符的比较结果 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值