编写程序,比较两个字符串的大小,不允许使用strcmp函数.输入分2行,每一行均为字符串(不包含空格)

编写程序,比较两个字符串的大小,不允许使用strcmp函数。输入分2行,每一行均为字符串(不包含空格)。如果第一个字符串大于第二个字符串,则输出1;如果两个字符串大小相等,则输出0;如果第一个字符串小于第二个字符串,则输出-1。
e
要c++格式的#include<iostream.h> cin cout 格式的
还有输入一个字符串以0 空格 或者 换行结束分别怎么表示?
感激不尽~~~
就是用最基本 最简单的程序设计 不要用函数什么的
#include<iostream.h>
int main ()
{
int a[256];
int c,n,b;char i;
c=0;
for (i=0;i!='\n';i++) e 怎么打完65241按完回车之后让程序继续往下走?
{cin>>a[i];
n=i;}
for (c=1;c<=n;c++)
{
for (i=0;i<=(n-1);i++)
{
if (a[i]<a[i+1])
{
b=a[i];
a[i]=a[i+1];
a[i+1]=b;
}
}
}
for (i=0;i<=n-1;i++)
{cout<<a[i];}
return 0;
}

    #include<iostream>
    #include<string>
    using namespace std;
          
    int main()
    {
        string str1, str2;
        cout<<"input string1:";
        cin>>str1;
        cout<<"input string2:";
        cin>>str2;
        
        int len = str1.length() - str2.length();
        if (len > 0)
            cout<<1<<endl;
        else if (len == 0)
            cout<<0<<endl;
        else
            cout<<-1<<endl;
        return 0;
    }

    不太懂你的意思。你是说你是输入6 5 4 3 2 1之后按回车跳到下一个for循环吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-17

(1)没有使用系统函数等,用最简单方法实现,代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string str1,str2;
    cout<<"请输入两个字符串:"<<endl;
    cin>>str1>>str2;
    int result=0;
    int minlen=str1.length();//求最小字符串长度,以便循环中使用。
    if(minlen>str2.length())
        minlen=str2.length();

    for(int i=0;i<minlen;i++)
        if(str1[i]>str2[i])
        {
            result=1;
            break;
        }
        else if(str1[i]<str2[i])
        {
            result=-1;
            break;
        }
    cout<<str1<<"和"<<str2<<"的大小关系是:"<<result<<endl;
    return 0;
}

(2)对于输入分割,用cin或者scanf输入时,字符串能使用回车(\n),空格分割,如果使用0分割就要在输入时进行控制。

第2个回答  2014-10-17
#include<iostream>  
using namespace std;
int strcmp(const char *s1, const char *s2)
{
int ret = 0;
for (;*s1||*s2;s1++,s2++)
{
if(*s1>*s2)
return 1;
else if(*s1<*s2)
return -1;
}
return 0;
}
int main()
{
int cmp;
char s1[100],s2[100];
cin>>s1>>s2;
cmp = strcmp(s1,s2);
cout<<cmp<<endl;

return 0;
}

cin>>s1>>s2;这样的输入格式,空格和回车都会正常分割,表示字符串结束。

但字符0不可以,这个是正常的标准字符。只有'\0'(数字0)在内存中表示字符串结束。

本回答被网友采纳
第3个回答  2014-10-17
#include<iostream>

using namespace std;

int main(int argc, char* argv[])
{
int i;
char sourStr[20];
char destStr[20];

cin>>sourStr;
cin>>destStr;

for(i = 0; sourStr[i] != '\0'; i++)
{
if(sourStr[i] > destStr[i])
{
cout<<"1"<<endl;
return 0;
}
else if(sourStr[i] < destStr[i])
{
cout<<"-1"<<endl;
return 0;
}
}
if(sourStr[i] == '\0' && destStr[i] == '\0')
cout<<"0"<<endl;
else
cout<<"-1"<<endl;
return 0;
}

输入一个字符串以0结束


#include<iostream>

using namespace std;

int main(int argc, char* argv[])
{

char sourStr[20]="";
char ch;
cin>>ch;
int i = 0;
while(ch != '0')
{
cout<<"!0"<<endl;

sourStr[i] = ch;
i++;
cin>>ch;
}
cout<<sourStr<<endl;

return 0;
}

第4个回答  2017-09-24
#include#includeintstring_compare(char*s,char*t);//放前面intmain(){chars[50]={"dog"};chart[50]={"cat"};scanf("%s%s",s,t);printf("%d\n",string_compare(s,t));return0;}intstring_compare(char*s,char*t){
相似回答