从键盘上输入两个字符串,并比较这两个字符串是否相等,要求给出判断结果的提示信息

作者&投稿:赤钧 (若有异议请与网页底部的电邮联系)
有两个字符串,利用函数实现两个字符串的链接,两个字符串比较大小,计算两个字符串的长度,将第二个字符~

char * mystrcat(char *str1, char *str2) { if((str1==NULL)||(str2==NULL)) return NULL; char *pt = str1; while(*str1!='\0') str1++; while(*str2!='\0') *str1++ = *str2++; *str1 = '\0'; return pt; } int mystrcmp(const char * src, const char * dst ) { int ret = 0 ; while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst) ++src, ++dst; if ( ret 0 ) ret = 1 ; return( ret ); } int myStrlen(const char *str)   {  if(str==NULL) return 0;  int len = 0;  for(; *str++ != '\0'; )  {  len++;  }  return len;  }char * mystrcpy (char * dst, char * src)  {  char * cp = dst;  while( *cp++ = *src++ )  ;   return( dst );  }

主要的错误是因为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
int main() {
char str1[10],str2[10];
int j = 0,flag = 0;
printf(“
”);
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

#include "stdafx.h"
#include<stdio.h>

int main(void)
{
char str1[1024], ch1,str2[1024], ch2;
int len;

printf("请输入字符串1,按Enter结束\n");
len = 0;
while ((ch1=getchar()) != '\n')
{
str1[len] = ch1;
len++;
}
str1[len] ='\0';
printf("请输入字符串2,按Enter结束\n");
len = 0;
while ((ch2=getchar()) !='\n')
{
str2[len] = ch2;
len++;
}
str2[len] = '\0';

if (str1==str2)
{
printf("亲!两字符串相等o^o\n");
}
printf("两字符串不相同哦!\n");
return 0;
}

#include<stdio.h>
#include <string.h>
void main(){
char s1[20]="",s2[20]="";
printf("请输入要比较的两个字符串:");
scanf("%s %s",s1,s2);
int r=strcmp(s1,s2);
if (r>0)
{
printf("第一个字符串大");
}else if(r==0){
printf("字符串相等");
}else{
printf("第二个字符串大");
}
}

var s1,s2:string;
begin
write('s1=');
readln(s1);
write('s2=');
readln(s2;
if s1=s2 then writeln('Yes') else writeln('No');
end.


c语言:输入两个字符串,输出较大者
char str1[100], str2[100];int result;printf("请输入第一个字符串:");gets(str1);printf("请输入第二个字符串:");gets(str2);result = strcmp(str1, str2);if (result > 0) { printf("较大者是:%s", str1);} else if (result == 0) { printf("两个字符串相等");} ...

如何在word里输入两个半角空格?
在大多数文本编辑和排版软件中,设置两个半角字符通常指的是在文本中插入两个占据半个标准字符宽度的空格或其他符号。半角字符是与全角字符相对的,全角字符占据一个标准字符宽度,而半角字符占据半个。若要在文本中设置两个半角空格,直接在需要的位置输入两个常规的空格即可,因为常规的空格就是半角空格。

电脑键盘一按字就出来两个字母怎么回事?
1. 粘连键问题:粘连键是指键盘上的某些键在按下后无法正常弹起,导致键盘连续输入多个字符。这种问题通常是由于键盘使用时间过长或者键盘质量不好导致的。如果你怀疑是粘连键问题,可以尝试轻轻拍打键盘或者使用一些清洁工具来清理键盘。2. 键盘设置错误:另一个可能导致输入一个拼音字母出现多个不同字母、...

Word左右缩进2个字符怎么操作呢?
方法\/步骤:1.打开WORD文档,在键盘上按下”CTRL+A“全选所有的文字,点击菜单栏上”开始-段落“右下角的箭头图标。2.弹出段落窗口,点击缩进,在左侧和右侧输入框里输入2字符。3.点击确定,文档中左右各缩进两个字符。---仅供参考

按住什么不放然后按双符号键就可以输入什么了
按shift键可以输入上档字符。在输入这些上档字符时需要一个键来帮忙,那就是shift键,只要按住shift键不放,然后按双符号键就可以输入上档字符。双符号键,又叫双符键,指一个键上有两个字符的键,键盘上一共有21个双符键。

从键盘输入两串字符串,将第二个字符串连接到第一个字符串后面
1、新建一个工程和.c文件 ,输入头文件和主函数。2、定义变量类型。3、调用cpy函数。4、定义一个函数,并定义变量类型。5、用一个For 语句和if语句判断是否为元音。6、最后加一个字符串结束符,并在主函数中输出。7、编译。运行得到最后结果。

C语言编程:键盘接收两个字符,要求输入的数据是大写字母,将输入的大写...
include <stdio.h>int main(){ char a,b;\/\/存放键盘输入的大写字母 char c,d;\/\/存放转换好的小写字母 printf("请输入2个大写字母,然后回车:"); scanf("%c",&a); scanf("%c",&b); c = a+32;\/\/大写字母变成小写字母 d = b+32; printf("转成小写:%c%...

(C语言),输入两个字符串,将第二个字符串插到第一个字符串中,插入位置...
用记事本写的,不知道对否,您试试!include"stdio"#include"string.h"main(){char a[100],b[100];int i,n,m,k;printf("请输入第一个字符串(a):");gets(a);n=strlen(a);printf("在输入要插入的字符串(b):");gets(b);m=strlen(b);printf("请输入要插入的位置(k不能超出字符串...

为什么按一下键盘中的字符会出现两个字符
你设置的键盘重复延迟时间太短了,在控制面板里的键盘里面设。

键盘上的2上面的符号怎么打出来
键盘上已有的的符号打法 (1)键盘上有的一个键上有两个符号的,如图所示;(2)如果想打键上面符号,则可以按住Shift,即可打出上面的字符,例如按住<shift>和<5>可以打出"%"符号 。键盘上没有的符号打法:(1)如果想打出其他的特殊符号,首先打开Word主程序界面,选择菜单栏中的“插入”菜单,...

冷水江市13966581039: 从键盘上输入两个字符串,并比较这两个字符串是否相等,要求给出判断结果的提示信息 -
郴石施博: #include<stdio.h>#include <string.h> void main(){ char s1[20]="",s2[20]=""; printf("请输入要比较的两个字符串:"); scanf("%s %s",s1,s2); int r=strcmp(s1,s2); if (r>0) { printf("第一个字符串大"); }else if(r==0){ printf("字符串相等"); }else{ printf("第二个字符串大"); } }

冷水江市13966581039: 输入两个字符串,比较这两个字符串是否相等,并输出比较结果 -
郴石施博: #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) {char A[256],B[256];char *p,*q;scanf("%s%s",A,B);p=A;q=B;while(*p++==*q++&&*p!='\0'&&*q!='\0');if(*p=='\0'&&*q=='\0')printf("the strings are equal\n");else printf("the strings are not equal\n");return 0; }

冷水江市13966581039: C语言编程:从键盘上输入两个字符串,判断两个字符串是否相等. -
郴石施博: #include#include int main() { char sa[100],sb[100]; scanf("%s%s",sa,sb); if(strcmp(sa,sb)==0)puts("相等"); else puts("不相等"); return 0; }

冷水江市13966581039: 从键盘输入2个字符串,比较它们是否相同,如果相同则显示输出“MATCH”,否则显示输出“NO MATCH”. -
郴石施博: datarea segment string1 db 25,0 mess1 db 26 dup(0)string2 db 25,0 mess2 db 26 dup(0) mat db 'match.',13,10,'$' notmat db 'no match.!',13,10,'$' input db 13,10,'please input the string',13,10,'$'datarea ends prognam segment main proc far ...

冷水江市13966581039: 编写一个程序,提示用户输入两个字符串,然后比较这两个字符是否相等? -
郴石施博: #include<iostream> #include<cstring> using namespace std; void main() {char *p=new char[10]; char *q=new char[10]; int g=0; cout<<"input the two strings:"<<endl; cin>>p>>q; int i=0; while((p[i])!='\0'||(q[i])!='\0') { if(p[i]!=q[i]) { cout<<"not equal!...

冷水江市13966581039: c++从键盘上输入两个字符串,比较两个字符串大小,按从小到大的顺序输出两个字符串 -
郴石施博: 1 2 3 4 5 6 7 8 9 10 11 12 13#include <iostream> #include <string> usingnamespacestd; intmain() {cout << "请输入两个字符串"<< endl;string a, b;cin >> a >> b;if(a < b) {cout << a << '\n'<< b << endl;} else{cout << b << '\n'<< a << endl;} }

冷水江市13966581039: 用C语言实现输入两字符串并比较两个字符串是否相同,若相同输出“true”,否则输出“false”; -
郴石施博: #include void main() { char str1[15],str2[15]; scanf("%s%s",str1,str2); if(strcmp(str1,str2)==0) printf("字符串相等\n"); else printf("字符串不相等\n"); }

冷水江市13966581039: 汇编写:从键盘上输入两个字符串 STR1 和 STR2,程序对两个字符串进行比较,比较结果应有 以下四种情况: -
郴石施博: 修改宏move如下:move macro str1,str2 local rr mov bx,0 mov bp,0 lea bx,str1 lea bp,str2 rr:mov AL,[bx] mov [bp],AL inc bx inc bp cmp AL,'$' jnz rr endm

冷水江市13966581039: 输入两个字符串,比较两个字符串的大小如果相等,则输出字符串的长度如何不相等,则输出不相等的字符个数 -
郴石施博: 首先字符串比较是从两个字符串的起始位置开始比较,依次向后比较,如遇到字符不等,计数器加1,继续向后比较直到比较字符串末尾,如字符一直相等,则输出字符串的length()函数值,便可,望采纳!!!

冷水江市13966581039: C语言编程,输入两个字符串,比较他们的大小并输出比较结果 -
郴石施博: 如果只是问个算法,我可以告诉你,但是如果是你要全部 ,那就不可以了,作业要自己做的啊! 如果你要用户输入2个字符串作比较的话 可以用“ ”来区分字符串1与字符串2 然后把2个字符串存到2个数组里去比 int i=1,j=1; char a[20],b[20] if (c=getchar()!=" ") then { a[i]=c; i++; } else { b[j]=c; j++; } 然后用for循环一个一个比他们的大小就可以了,如果有一个大了就return 大的值,如果遇到一个数组为空了,也return 另外一个字符串就好了. 其它的要你自己想了,如果全告你,那你也还是什么也学不会,算法告你了就可以了.给不给分你自己看着办吧

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网