Porownanie lancucha znakow [c++]

0

Hej,

Mam male pytanie dot. c++.

Chce porownac rozszerzenia plikow.
Potrzebuje funkcje do porownywania ciagu kilku znakow.
Wiem ze jest strcmp ale to porownuje calosc, porbowalam strstr - ale tez nie dziala za dobrze.

 
const char* filename = "file.txt";

if(strstr(filename, ".txt") != 0)
{
    std::cout<<"It is cxx file"<<std::endl;

   ....

} else
{ 
   std::cout<<" it is txt file"<<std::endl;

   ....
}

Bede wdzieczna za kazda pomoc.

1
std::string pliczek = "pliczek.txt";
if(pliczek.substr(pliczek.find_last_of(".") + 1) == "txt")
{
	std::cout<<"To jest pliczek txt.";
}
else
{
	std::cout<<"To nie jest pliczek txt.";
}

Można też skorzystać z rfind i substr, co kto lubi.

0

Ok. dzieki wielkie ;)

0

Zrobilam to w ten sposob bo ten przyklad z substr co podales nie dziala ;/

#include <iostream>
#include <cstring>

const char* filename = "file.txt";

int main(void)
{
    if(strcmp(filename + strlen(filename) - 4, ".txt") != 0)
	{
        std::cout<<"It is not txt file"<<std::endl;
	    system("Pause");
	}
    else
	{
        std::cout<<"It is txt file"<<std::endl;
	    system("Pause");
	}
    return 0;
}
0

Ale co nie działa? Nie kompiluje się?
Bo działać działa: http://ideone.com/22oqW

1 użytkowników online, w tym zalogowanych: 0, gości: 1