webForumDet fria alternativet

while längden av en sträng

C/C++

2 svar · 341 visningar · startad av Brimba

Medlem sedan dec. 19995 874 inlägg
Frågan#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
}

------------------
webForum har stängt mellan den 15:e och 17:e februari då vi uppgraderar wF till wF2.

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.

------------------
People might not remember what you said, or what you did, but they will always remember how you made them feel.

[Redigerat av Muzzafarath den 13 feb 2002]

[Redigerat av Muzzafarath den 13 feb 2002]

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?

------------------
The computer is mightier than the pen, the sword, and usually, the programmer.

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)