Hogyan lehet olyan függvényt írni, ami megvizsgálja egy karakterláncról, hogy van-e benne nagybetű?
m3WiTnduipMay9a5K7Gt: Jó az is, csak pár apró probléma van vele (vedd hozzá, hogy C nyelvről van szó!):
* Ha strupr-t használna, az nem szabványos függvény - nem biztos, hogy mindenhol lefordul.
* Ha a nagybetűssé átalakítást ciklussal, egyenként csinálja meg, az lehet hogy időigényes lesz. Tegyük fel, hogy 1000 (vagy több) karakteres karakterláncról van szó és a 2. karakter a nagybetű. Melyik hajtódik gyorsabban végre: leellenőrizni, hogy az aktuális karakter megegyezik-e a nagybetűs változatával/benne van-e a nagybetűk között (2 összehasonlítás), vagy átalakítani a sztringet (1000 lépés) majd összehasonlítani (strcmp-vel egy lépés)?
Természetesen elfogadható egy megoldásnak.
#include <stdio.h>
#include <ctype.h>
int isContainUpperCase(const char * str)
{
int i;
i = 0;
while (str[i] != '\0') {
// if (isupper(str[i]))
if ((str[i] >= 'A') && (str[i] <= 'Z'))
{
return 1;
}
i++;
}
return 0;
}
int main(int argc, char *argv[])
{
char * text = "van bennem Nagy betu?";
printf("%s\n", text);
if (isContainUpperCase(text)) {
printf("Tartalmaz nagy betut.\n");
} else {
printf("Nem tartalmaz nagy betut.\n");
}
return 0;
}
// Angol ABC-re működik, de kiegészíthető
char* getUpperPos(char* ch) {
while (*ch) {
if (*ch>64 && *ch<91) return ch;
ch++;
}
return null;
}
//használat pl.:
if (getUpperPos("")) ...
Csak úgy eszembe jutott:
Mégis miért akarná bárki is megvizsgálni, hogy a Háború és Békében van-e nagybetű? Vagy úgy általában bármilyen szövegben? Jelenleg csak jelszóerősség ellenőrzésnél tudom elképzelni a dolgot, azt meg nem rendezzük ciklusba.
[C# 6]
bool HasUppercaseLetter(string Input) => Input.Any(x => Char.IsUpper(x));
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!