发布网友 发布时间: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); 不需要加取缔符热心网友 时间:2023-10-15 10:34
#include<stdio.h>热心网友 时间:2023-10-15 10:34
写的太乱了,程序也乱。