Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z strcmp w if'ie

Ostatnio zmodyfikowano 2012-06-02 16:00
Autor Wiadomość
Trix
Temat założony przez niniejszego użytkownika
Problem z strcmp w if'ie
» 2012-06-01 09:54:33
C/C++
if( strcmp( str, "test" ) == 0 )

Gdzie, char str[512] zawiera ciąg znaków wczytanych z pliku (spr. czy dobrze wczytuje, okazało się, że tak, dobrze), nie wczytuje żadnych białych znaków, bo spr. kilkakrotnie plik z tym tekstem.

Zawsze, czy ciąg jest taki sam, czy nie pokazuje błąd tzn. kod po else.


Przed napisaniem tego tematu, porobiłem kilka testów, spr. czy str jest sobie równy i tu się dobrze wykonało, stworzyłem nową zmienną char cc[512]= "test";, ciągi nie są sobie równe.
P-57589
xevuel
» 2012-06-01 10:01:02
Wypisz sobie na ekran to str, czy na pewno jest równe "test", czy nie zawiera na końcu np. znaku nowej linii. » standard Cstrcmp
P-57590
madmike44
» 2012-06-01 11:37:23
Jednak musi być jakaś różnica.... Prosty kod:

C/C++
#include <iostream>
#include <cstring>


int main()
{
    char str[ 512 ] = "test";
   
    if( strcmp( str, "test" ) == 0 )
    {
        std::cout << "Success!";
    }
    else
    {
        std::cout << "Error!!!";
    }
}

wykonuje się poprawnie (teksty są równe), więc najprawdopodobniej Twoje teksty różnią się od siebie :)
P-57595
yoogi
» 2012-06-01 21:34:18
Najprawdopodobniej funkcja w przypadku identycznych tekstów zwraca 0, a w innym przypadku wartość niezerową. Postaw wykrzyknik w if'ie :)
P-57643
SeaMonster131
» 2012-06-01 23:37:27
Nie wiem jak Tobie, ale ten kod co podałeś to działa poprawnie w Code::Blocks 10.05 z gcc.
P-57669
ison
» 2012-06-02 16:00:11
@yoogi
przecież napisał
if( strcmp( str, "test" ) == 0 )
P-57707
« 1 »
  Strona 1 z 1