C语言。判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。
时间: 2024-09-20 19:01:57 浏览: 44
C语言是一种广泛使用的通用-purpose计算机编程语言,它属于编译型语言,可以直接被硬件理解和执行。对于判断两个字符串在忽略大小写和空格后的相等性,你可以编写如下的函数:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h> // 需要用到tolower函数
// 函数用于比较两个字符串(忽略大小写和空格)
int compare_strings(const char* str1, const char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 检查长度是否相等
if (len1 != len2) return 0;
// 创建新的字符数组,去掉原始字符串中的空格并转换为小写
char clean_str1[len1 + 1], clean_str2[len2 + 1];
for (int i = 0; i < len1; i++) {
clean_str1[i] = tolower(str1[i]); // 转换为小写
clean_str1[i+1] = '\0'; // 结束字符
clean_str2[i] = tolower(str2[i]);
clean_str2[i+1] = '\0';
}
// 比较清理后的字符串
return strcmp(clean_str1, clean_str2); // 如果相等返回0,不等则返回非零值
}
int main() {
char str1[] = "Hello World";
char str2[] = "hello world";
if (compare_strings(str1, str2)) {
printf("The strings are equal (ignoring case and spaces).");
} else {
printf("The strings are not equal.");
}
return 0;
}
```
在这个例子中,`compare_strings`函数会忽略两个输入字符串中的大小写和空格,并通过`strcmp`函数比较它们的内容。如果两个清理后的字符串内容相等,则返回0,否则返回非零值。
阅读全文