- Kormányok / autós szimulátorok topikja
- Bluetooth hangszórók
- Melyik hordozható audiolejátszót (DAP, MP3, stb.) vegyem?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- OLED TV topic
- Vezeték nélküli fejhallgatók
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Autós kamerák
- Milyen belső merevlemezt vegyek?
Új hozzászólás Aktív témák
-
Bero
aktív tag
Üdv,
Egy olyan problémával fordulnék hozzátok. Egyszerűen nem tudom mit rontok, rengetegszer, rengeteg verzióban próbáltam már, de nem megy.Egy stringet olvasok be, három szóból áll, közöttük szóköz. Ezt kellene szétbontanom 3 különböző stringre, azaz egy stringben egy szó.
Inputellenőrzés után így próbáltam:
while(!isspace(str[i])){
szoegy[i]=str[i];
i++;
}
while(isspace(str[i])){
i++;
}
while(!isspace(str[i])){
szoketto[i]=str[i];
i++;
}
while(isspace(str[i])){
i++;
}
while(i==strlen(str)){
szoharom[i]=str[i];
i++;
}Az első szóig okés, de a következő kettő már nem. Próbáltam for-al is, de ugyan ez az eredmény. Mit csinálok rosszul?
Köszönöm előre is! -
Bero
aktív tag
No megírtam így, eredetileg is így kérték, egy kérdésem van még
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
void main(){
char str[100];
int dobas;
int i;
int egy=0, ket=0, ha=0, negy=0, ot=0, hat=0;
clrscr();
printf("\nHany kocadobast vegez? ");
scanf("%d", &dobas);
printf("Irja be a kockadobasok eredmenyeit! ");
scanf("%s", str);
for(i=0;i<dobas;i++)
{
if (str[i] =='1')egy++;
else if (str[i] == '2')ket++;
else if (str[i] == '3')ha++;
else if (str[i] == '4')negy++;
else if (str[i] == '5')ot++;
else if (str[i] == '6')hat++;
}
printf("1: %d db\n", egy);
printf("2: %d db\n", ket);
printf("3: %d db\n", ha);
printf("4: %d db\n", negy);
printf("5: %d db\n", ot);
printf("6: %d db\n", hat);
getch();
}Hogy tudom a bekért számsor formai helyességét ellenőrizni egyszerűen? Ebben az esetben azt hogy szám-e, illetve hogy 1 és 6 között van.
Előre is nagyon köszönöm a segítséget! -
Bero
aktív tag
Köszönöm, így már működik.
Még egy kérdés, hogy tudom elintézni azt, hogy az elején a program rákérdezzen hány dobást fogunk végezni, és addig kérje be?
Ha egy int-be scanf-el bekérek egy számot, akkor a getline nem is fut le.Nagyon szégyelem magam, túlságosan is kezdő vagyok hozzá, de remélem azért érthetően fogalmaztam a kérdést.
Iskolai sablon a getline, tanárok szerint minden programhoz használnunk kell, de az igazság az hogy jobbat én nem is tudok varázsolni.
-
Bero
aktív tag
Üdvözletem!
Segítséget szeretnék kérni, hogy miért nem működik ez ebben a formában:#include <stdio.h>
#include <conio.h>
#define MAX 100
int getline(char s[],int lim)
{
int i;
char c;
for(i=0;i<lim && (c=getchar())!=EOF && c!='\n';i++)
{ s[i]=c; }
s[i]='\0';
while(c!=EOF && c!='\n')
c=getchar();
return i;
}
void main(void)
{
char str[MAX];
int i;
int egyeb=0, egy=0, ket=0, ha=0, negy=0, ot=0, hat=0;
clrscr();
printf("K‚rek egy sort:");
getline(str,MAX);
for(i=0; i<MAX; i++)
{
if (str[i] == '1')egy++;
else if(str[i] == '2')ket++;
else if(str[i] == '3')ha++;
else if(str[i] == '4')negy++;
else if(str[i] == '5')ot++;
else if(str[i] == '6')hat++;
else egyeb++;
}
printf("%s", str);
printf("\n1 = %d", egy);
printf("\n2 = %d", ket);
printf("\n3 = %d", ha);
printf("\n4 = %d", negy);
printf("\n5 = %d", ot);
printf("\n6 = %d", hat);
getch();
}kockadobásokat kér be, max 100-at, és utána egyszerűen megszámolja.
Előre is köszönöm!
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Logitech MX Keys for Mac
- ÚJ Bontatlan Apple iPad Air (2025) 11" M3 Wi-Fi 128GB & 256GB ! 1Év nemzetközi APPLE GARANCiA
- Samsung Galaxy Watch 8 BT
- 15.gen! Intel Core ULTRA 9 285K (24mag!) +32GB DDR5 kit +ASROCK Z890 PRO-A! GAR/SZÁMLA (Te nevedre)!
- X13 Gen4 13.3" FHD+ IPS érintő i5-1335U 16GB 256GB NVMe magyarított (lézerezett) bill IR kam gar
- Bomba ár! Lenovo ThinkBook 15 G2 - i5-11G I 16GB I 256SSD I 15,6" FHD I Cam I W11 I Garancia!
- iPhone 12 Pro Max 128GB Pacific Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4328, 100% AKKSI
- Dell Latitude 7420 Core i7-1185 G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar, szép állapot
- Samsung Galaxy A04s / 3/32GB / Kártyafüggetlen / 12Hó Garancia
- AKCIÓ! Microsoft XBOX Series X 1TB SSD fekete játékkonzol extra kontrollerrel garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



