Új hozzászólás Aktív témák
-
gregory91
senior tag
Csak úgy érdekességként:
#include <stdio.h>
int main (){
char name[20];
char chars[5]={'a','b','c','d','e'};
int yes=0;
printf("Enter name: ");
scanf("%s",name);
for(int i=0;i<sizeof(name)/sizeof(char);i++){
for(int j=0;j<sizeof(chars)/sizeof(char);j++){
if(name[i]==chars[j]){
yes=1;}
}
}
printf("%s",yes?"YES\n":"NO\n");
printf("%ld name",sizeof(name)/sizeof(char));
printf("%ld chars",sizeof(chars)/sizeof(char));
return 0;} -
pmonitor
aktív tag
Én csak tanulmányozásra írtam a kódot, hogy az strstr() miért is nem működik karakterekre. Mert a karakter nem kezelhető strstr()-el. Viszont a ciklust nem tudod elkerülni, akár az ststr()-t, akár az strchr()-t használod. Egyébként én is elkövettem 1 hibát. A break-re nincs szükség, mert az elején a feltételben vizsgálom.
-
kovisoft
őstag
Ha karaktereket keresel egyesével stringben, akkor javaslom az strchr() használatát strstr() helyett, mert az strstr()-nek keresőstringet kell megadni, ezért nem fog működni const char restrictions[5] = {'a', 'b', 'c'} formával. Ezt láthatod is pmonitor kódjában, ha majd megnézed.
-
kovisoft
őstag
Azért nem működik így, mert az strstr() egy összefüggő rész-stringet keres meg az adott stringben, te pedig azt szeretnéd, hogy a megadott karaktereket külön-külön nézze meg, hogy benne vannak-e valahol a stringben, nem feltétlenül összefüggően és nem feltétlenül ugyanabban a sorrendben. Pl. ha "abc"-t keresel, azt az strstr() megtalálja az "aabcc"-ben, de nem találja meg az "aabbcc"-ben, mert ez utóbbinak az "abc" nem rész-stringje.
Azt kell csinálnod, hogy egy ciklussal végigmész a restrictions[] karakterein, és mindegyikre megnézed, hogy benne van-e a name-ben az adott karakter.
Szerk: lassú voltam
-
pmonitor
aktív tag
int main()
{
const char name[20];
const char restrictions[7] = "a\0b\0c\0";
printf("Enter name: ");
scanf("%s", name);
int i, ok = 1;
for (i = 0; restrictions[i] && ok; i += 2)
{
if (strstr(name, &restrictions[i]) != NULL)
{
ok = !ok;
break;
}
}
if (ok) printf("Name: %s\n", name);
else printf("Not a valid name!\n");
return 0;
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Dell P3421W - (3440x1440 , PBP/PIP,KVM,USB-C)
- MSI Vanguard SOC RTX 5080 16GB (2 év garancia)
- Gainward 4060Ti Ghost 8GB / 11 Hónap Alza.hu Garancia / Beszámítás OK!
- BONTATLAN Új Ipad 10th , 11th Minden szín 1év hivatalos Apple Garancia AZONNAL ÁTVEHETŐ DEÁK TÉRNÉL.
- BONTATLAN Új Iphone 17 256-512GB Minden Szín 1év APPLE garancia gyári független Deák AZONNAL Átvehet
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3938
- Dell Latitude 7410 Core i5-10310u, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- Új DELL Inspiron 14 (5435)/AMD RYZEN 7-7730U/16GB/512 SSD/14"/FHD/IPS/Garancia
- BESZÁMÍTÁS! HP Elitebook 745 G6 14 üzleti notebook - R5 3500U 16GB DDR4 256GB SSD Vega 8 IGP WIN11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
