strlen w C++

Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;

string a;

int main()
{
cin >> a;
cout << (strlen (a));
for (i=1;i<=do liczby znakow;i++)

return 0;

}

Pytanie jest jak ograniczyć pętle ilością znaków ? na pewno jest jakiś sposób, mógłby ktoś pomoc ? :)

Quentin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Naucz się korzystać z klasy string, jej nagłówek to bynajmniej nie string.h

http://www.cplusplus.com/reference/string/string/size/

Zellus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 474
0

Kod umieszczaj w odpowiednich znacznikach.
3 sposoby:

Kopiuj
 int length = strlen(a);
for(int i = 0 ; i < length; ++i)
Kopiuj
for(int i = 0 ; i < strlen(a); ++i)
Kopiuj
for(int i = 0 ; a[i] != '\0'; ++i) //chyba nic nie pomieszałem :P

EDIT:
Nie zawróciłem uwagi że korzystasz z stringa. To co podałem bardziej dotyczy starego C.

Kopiuj
 for(int i = 0; i < a.length(); ++i) 
Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

cin >> a;
int length = strlen(a);
for(int i = 0; i < a.length(); ++i)

to nie działa.

error: cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '1' to 'size_t strlen(const char*)'|

Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

a jak bym chciał teraz wywołać tą liczbę określającą długość ?

cout << a.lenght ();

bo tak nie działa , ale ten C++ jest wybredny -.-

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Dlaczego nie zajrzysz do poradnika oraz dokumentacji?
Masz dwa błędy - pomyliłeś operator oraz skorzystałeś z nieistniejącej funkcji.

Quentin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
1
Kopiuj
#include <string> //nie string.h

//...

int main()
{
    //...
    string a;
    cin >> a;
    cout << a.length();
    //...
}
Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

Gdyby ktoś miał chwilę czasu, ja już nie mam siły szukać błędu. Program ma wyszukać najmniejszą i największą liczbę. Warunek jest dobry, cały pomysł też myślę daje rade. Mimo wszystko wyniki są niepoprawne :( Z góry dziękuję.

Kopiuj
#include <iostream>
#include <stdio.h>
#include <string>

using namespace std;

string a;
int miin;
int maax;


int main() {

cin >> a;
cout << "\n";
cout << a.length ();
cout << "\n";

miin=0;
for(int i=0;i<a.length();++i){
cout <<a[i];
}

for(int i=0; i<a.length(); ++i){

if (a[i]<=miin) {

    miin=a[i];
}

}
cout << "najmniejsza liczba\n";
cout << miin;

maax=0;
for(int i = 0; i <= a.length(); ++i){

if (a[i]>=maax) {
maax=a[i];
}

}
cout << "najwieksza liczba";
cout << maax;


return 0;
}
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Program ma wyszukiwać najmniejszą i największą liczbę z ciągu znaków? :|
Co miałby zwrócić, gdybyś mu wpisał abchelloworld?

Renewerek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 52
0

a no rzeczywiscie :| . Już sobie poradziłem na vectorze. a tutaj nie pomyślałem. Dzięki. Bez odbioru :)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.