while längden av en sträng

C/C++

2 svar · 366 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Trådstart#1

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">getline(cin, namn);
while(namn.size()>0);
{
//ditten datten
}

Medlem sedan apr. 20002 487 inlägg
#2

Vad var frågan? Fungerar inte koden?

Vill du loopa igenom strängen, tecken för tecken? Jag har ingen kompilator just nu, och har inte programmet på några månader, men nåt sånt här borde väl funka:

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
int i = 0;

getline(cin, namn);

while(namn [i ] != '\0')
{
//ditten datten
i++;
}

[r] Hade ett semikolon på fel ställe :r.

Medlem sedan juli 20011 304 inlägg
#3

while(namn.size()>0);

ditt semikolon på raden gör att den körs oändligt många gånger :)

annars loopar du ju tills storleken är 0. Detta förutsätter att du tar bort saker från namn i varje loop. Det har ju inte jag nån aning om du vill, men det verkar suspekt ;)

Du kanske är ute efter:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
getline(cin,namn);
for(int i=0; i<namn.size();i++)
{
//mickla
}

eller?

268 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)