C语言输入并比较两个字符串是否相同
时间: 2024-09-22 11:08:06 浏览: 137
在C语言中,输入两个字符串并比较它们是否相等通常涉及以下几个步骤:
1. **声明和初始化变量**:首先,你需要声明两个字符数组(通常是`char`类型的指针),用于存储输入的字符串。
```c
char str1[50], str2[50];
```
2. **读取输入**:使用`fgets`函数从用户那里获取字符串,记得添加换行符`\n`作为结束标志。
```c
scanf("%s", str1);
fgets(str2, sizeof(str2), stdin); // 使用fgets避免缓冲区溢出
```
3. **检查字符串长度**:确保两个字符串都有内容,并且长度相等,因为`strcmp`函数会在遇到第一个不匹配的字符时停止。
```c
size_t len1 = strlen(str1);
size_t len2 = strlen(str2);
if (len1 != len2) {
printf("字符串长度不等\n");
return; // 或者继续其他处理
}
```
4. **比较字符串**:最后,使用`strcmp`函数比较两个字符串。如果返回值为0,则表示两个字符串完全相同。
```c
if (strcmp(str1, str2) == 0) {
printf("两个字符串相同。\n");
} else {
printf("两个字符串不同。\n");
}
```
相关问题
c语言中输入统计两个字符串相同的字母其个自数
在C语言中,你可以使用循环和条件语句来统计两个字符串中相同的字符及其个数。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h>
void countSameChars(char str1[], char str2[]) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int count[256] = {0}; // 创建一个大小为256的数组,用于存储ASCII字符出现次数,因为ASCII码范围是0到255
// 遍历第一个字符串,统计每个字符的出现次数
for (int i = 0; i < len1; i++) {
count[str1[i]]++;
}
// 再次遍历第二个字符串,检查并更新计数
for (int j = 0; j < len2; j++) {
if (count[str2[j]]) {
count[str2[j]]--;
}
}
// 输出相同字符及其个数
printf("相同字符及个数:\n");
for (int i = 0; i < 256; i++) {
if (count[i]) {
printf("%c: %d\n", i, count[i]);
}
}
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 注意处理fgets的换行符
str1[strlen(str1) - 1] = '\0'; // 去除fgets带来的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strlen(str2) - 1] = '\0';
countSameChars(str1, str2);
return 0;
}
```
在这个程序中,我们首先创建一个大小为256的计数数组,然后遍历每个字符串,分别增加和减少对应字符的计数。最后,打印出所有非零计数的字符及其出现次数。
怎么用C语言输入两个字符串并判断两个字符串是否相等
您可以使用strcmp函数进行字符串的比较。以下是一个简单的示例:
```
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[100];
printf("请输入字符串1: ");
gets(str1);
printf("请输入字符串2: ");
gets(str2);
if (strcmp(str1, str2) == 0) {
printf("两个字符串相等");
} else {
printf("两个字符串不相等");
}
return 0;
}
```
以上代码中,gets函数用于输入字符串,strcmp函数用于比较字符串是否相等。注意,该方法只能用于比较两个字符串是否完全一样,如果想比较两个字符串是否包含相同的字符序列,可以使用strstr函数。
阅读全文