程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-C++問題:比較兩個C風格的字符串,哪裡錯了,輸出都是equal

c++-C++問題:比較兩個C風格的字符串,哪裡錯了,輸出都是equal

編輯:編程解疑
C++問題:比較兩個C風格的字符串,哪裡錯了,輸出都是equal

#include
#include
#include
using namespace std;
int main()
{
char s1[]={},s2[]={};
cin.getline(s1,100);
cin.get();
cin.getline(s2,100);
if(strcmp(s1,s2)==0)
{
cout<<"equal"<<endl;
}
else
cout<<"not equal"<<endl;
}

最佳回答:


LZ:你定義數組時不初始化大小能夠編譯過麼?應該初始化大小;這是問題一;

 char s1[]={},s2[]={};  應該為:char s1[100]={0};或:char s1[100]; memset(s1,0,sizeof(s1));

其次:cin.get(無參數)沒有參數主要是用於捨棄輸入流中的不需要的字符,或者捨棄回車,彌補cin.get(字符數組名,接收字符數目)的不足.
你要注意cin.get()的用法;
下面代碼已調試好:

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
int main()
    {
    char s1[100]={0},s2[100]={0};
    cin.getline(s1,10);
    //cin.get ();
    cin.getline(s2,10);
    if(strcmp(s1,s2)==0)
        {
        cout<<"equal"<<endl;
        }
    else
        cout<<"not equal"<<endl;
    system ("pause");
    return 0;
    }



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved