webForumDet fria alternativet

C++ problem gränsvärde och strängar med mera.

C/C++

2 svar · 391 visningar · startad av fusion

Medlem sedan okt. 20013 inlägg
Frågan#1

Hej hur gör man om följande kod så att den klarar av att göra en
sifferkontroll på en hel sträng? Till exempel om man skriver in
"1q2" eller
bara "123" så ska den känna av att det är bokstäver i strängen
eller om det
bara är siffror o sedan skriva ut det.

----------------------------------------------------------------------
------------
#include <iostream>
using namespace std;
char teckenkoll(char);

void main()

{
char tecken;

cout << "Skriv in en siffra: "; cin >> tecken;

while (teckenkoll(tecken)!=0)
{
cout << "Du skrev inte en siffra, försök igen:";
cin >> tecken;
}

cout << "Nu skrev du en siffra" << endl;
}

char teckenkoll(char tecken)
{
if(tecken>=48 && tecken<=57)
return 0;
else
return tecken;
}

----------------------------------------------------------------------
--

Problem nr2.

Nu vill jag skapa en funktion som läser in ett tal (hel eller
flyttal).
Funktionen ska kontrollera om det inlästa värdet är mellen ett min
och ett
max värde (hel eller flyttal)

Funktionen ska ha två inparametrar där man kan ange min- och max
värde.

Om talet är mellan (eller lika med) min och max ska funktionen
returnera
true. Om det är utanför gränserna ska funktionen returnera false.

Det inlästa värdet ska alltid överföras via en referensparameter
till den
anropande funktionen.

Skriv också en main funktion så att man kan testa funktionen i
sig.

----------------------------------------------------------------------
-------------

Tack på förhand :)
Beskriv gärna allt noggrant jag är ganska grön på det här med C++ och fattig så jag inte råd att köpa någon vettig C++ litteratur så jag vore väldigt tacksam om någon kunde hjälpa till.

Medlem sedan juni 200010 432 inlägg
#2

Ser ut som om du sitter med nånslags skoluppgift, vilket du bör lösa själv utan att ta hjälp utifrån.

Men som ledtråd kan du ju greja ovan problem med inmatning i en do-while sats där du anger dina villkor.

EX:<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
do{
cin >> tal;
}while(_gränsvärden el dyl. villkor_);

Är det flera tecken som ska matas in kan du ju nästla loopen och skicka in varje tecken i en array av char...

Du bör skaffa dig nån bra bok för jag tror inte många är pigga på att lösa kompletta uppgifter... det finns massor av billiga nybörjarböcker att tillgå.

------------------
Ancilla, face mea laganum!

[Redigerat av PeW den 14 okt 2001]

Medlem sedan mars 20007 896 inlägg
#3

Ännu en ledtråd är att inkludera biblioteket cctype och använda sig av funktionerna isdigit(), isalpha(), isalphanum(), osv. :)

------------------
SPiN, bjorne.w@telia.com

-- Den som går i andras fotspår kommer aldrig först --

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