问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言编程:从键盘上输入两个字符串,判断两个字符串是否相等。

发布网友 发布时间:2022-04-24 00:25

我来回答

5个回答

热心网友 时间:2023-10-15 10:32

string.h头文件中的strcmp函数可以实现字符串的比较...亲..用函数吧

热心网友 时间:2023-10-15 10:33

写的太乱了,程序也乱。

热心网友 时间:2023-10-15 10:32

主要的错误是因为scanf (“%s,%s”,&str1,&str2);中%s,%s之间的逗号造成的,加上逗号之后会导致第二个输入的字符串出现问题。

可以将scanf (“%s,%s”,&str1,&str2);改成scanf (“%s%s”,&str1,&str2);

 if (str1[j] == ‘\0’ || str2[j] == ‘\0’)应该改为 if (str1[j] == ‘\0’ && str2[j] == ‘\0’)这样可以有效的解决你的问题。

正确代码供参考:

#include <stdio.h>

int main() {

   char str1[10],str2[10];

   int j = 0,flag = 0;

   printf(“\n”);

   scanf(“%s%s”,&str1,&str2);

   while (str1[j] == str2[j]) {

       j++;

       if (str1[j] == ‘\0’ && str2[j] ==‘\0’) {

           flag = 1;

           break;

       }

   }

   if (flag==1) {

       printf(“the two string are equal.”);

   } else {

       printf(“the two string are not equal.”);

   }

}

扩展资料:

scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

空白字符会使scanf函数在读操作中略去输入中的一个或多个空白字符。

一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

scanf使用注意:

在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。

对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上“&”操作符。

可以在格式化字符串中的“%”各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。

scanf函数中没有类似printf的精度控制。

scanf中要求给出变量地址,如给出变量名则会出错。

在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。

C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

参考资料来源:百度百科-scanf

热心网友 时间:2023-10-15 10:33

string.h头文件中的strcmp函数可以实现字符串的比较...亲..用函数吧

热心网友 时间:2023-10-15 10:33

1、挑一个错误 scanf("%s %s",str1,str2); 不需要加取缔符
2、 我是我重新打的 你的太乱了
#include <stdio.h>
int main()
{
char str1[10],str2[10];
int j,flag;
j=0;
gets(str1);
gets(str2);
while (str1[j]==str2[j])
{
j++;
if ( (str1[j]=='\0')||(str2[j]=='\0'))
break;
}
if ( (str1[j]=='\0')&&(str2[j]=='\0'))
flag=1;
else
flag=0;
if(flag )
printf ("the two string are equal.");
else
printf ("the two string are not equal.!!!\n");
system("pause");
}
3、你可以用更简单的方法
#include<string.h>
strcmp(str1,str2) 相等时返回0

热心网友 时间:2023-10-15 10:34

#include<stdio.h>
#include<string.h>
int main()
{
char sa[100],sb[100];
scanf("%s%s",sa,sb);
if(strcmp(sa,sb)==0)puts("相等");
else puts("不相等");
return 0;
}

热心网友 时间:2023-10-15 10:34

写的太乱了,程序也乱。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...爱你你是我的罗密欧 , 我愿意变成你的朱丽叶' 谁知 有句歌词是“我爱你你是我的朱丽叶,我愿意变成你的梁山伯”是哪... 为什么打印出来的文档页码和原来的不一样 ...两台电脑用路由器上网一台是W7一台是XP如何实现两台电脑共享文件 win7怎么联另一台电脑win7怎么让网络和另一台电脑共享 w7的系统怎么共享电脑w7系统里面文件怎么共享另一台电脑 共享win7电脑w7系统里面文件怎么共享另一台电脑 翡翠有收藏价值吗,我们玩家如何去投资 价格一两万元的翡翠如何挑选 ppt怎么转换成视频?简单四步法,轻松搞定ppt微课录制 山东种什么品种橘子盆栽好?有推荐的吗? c语言程序设计. 由键盘输入两个整数,分别计算这两个数的和、差、积、商,并输出结果? 观赏果树结的果子,到底能不能食用呢? 过年的时候买的橘子树,上面的橘子可以吃的吗? 观赏金桔可以吃吗? 观赏金桔可以吃吗 搜狐会员在哪里登录? 辽宁搜狐视频特权包搜狐会员如何领取? 虚拟机中安装的系统怎样删除? 如何删除VM虚拟机系统? 如何将从虚拟机装的系统删除 怎么删除虚拟机中的另一个系统 删除虚拟机中的系统,比如说我在虚拟机中装了xp的,想彻底的删掉,是直接删除安装时的文件么,还是怎样啊 在虚拟机里如何注销删除win10系统及注册信息 vmware虚拟机如何卸载虚拟的系统? 怎么彻底 删除VirtualBox虚拟机上的系统 不想要了 怎么删除虚拟机系统? 怎样删除虚拟机下的一个操作系统 如何卸载虚拟机中的系统 虚拟机中安装的系统如何卸载? C语言编程:从键盘输入两个实数后,屏幕显示菜单如下内容? 观赏橘子树在家应该怎么养 c语言从键盘输入两个字符串,将第二个字符串连接到第一个字符串的后面,并输出连接 观赏橘子树叶子发黄的图片跟原因 用C语言在键盘上输入两个整数比较两个数的大小将大的输出 观赏橘子我家的桔子树的叶子都落了,为啥 C语言从键盘出入两个整数,求其和。输出时要求输出一个完整的等式 注册资本是否可以随便填写? 观赏金桔橘子干瘪是什么原因 用c语言编写:从键盘输入两个字符,要求输出这两个字符,并输出它们的ASCII码及其ASCII码的平方和的平方根 天眼查里面的注册资金是不是乱写的 观赏桔子树是不是特难养呀? c语言编程:从键盘输入任意两个数把比较大的数输出 观赏桔子树是否喜水? C语言的编程题,要求从键盘输入两个整数,输出它们的平方差,怎么做? 怎么养好家里的“盆栽橘子”? 营业执照注册资金可以随便填写吗? 用c语言编写一道程序,从键盘上输入两个数,输出其中最大的一个数 C语言程序 从键盘输入两个小数,输出它们的和及乘积? 怎么培养桔子