IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Výpis pole znaků-výpis h za každým číslem

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Pavel Šrytr
Člen
Avatar
Pavel Šrytr:30.1.2018 15:47

Ahoj,
když mám čísla ve stringu a ten string si ve for loop vypíšu, tak za každou číslicí vidím h. Co to znamená a jak se toho zbavím? Zkoušel jsem i google, ale nevím uplně co hledám.

Děkuji za pomoc
Pavel

 
Odpovědět
30.1.2018 15:47
Avatar
Odpovídá na Pavel Šrytr
Erik Šťastný:30.1.2018 15:55

Ahoj, pošli kód, taky nemám ponětí co hledáš :)

 
Nahoru Odpovědět
30.1.2018 15:55
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Pavel Šrytr
DarkCoder:30.1.2018 17:33

Nepochybně máš něco chybně v kódu.
Zde máš ukázku kódu a jednu z možností způsobu výpisu čísel z řetězce pomocí for cyklu:

char str[] = "4536271809";
int i;

for (i = 0; str[i]; i++) putchar(str[i]);
Nahoru Odpovědět
30.1.2018 17:33
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Pavel Šrytr
Člen
Avatar
Pavel Šrytr:30.1.2018 20:41

Tady posílám tedy main

int main()
{
  char *vstup=read();
  for(int i=0;vstup[i]!='\0';i++)
  {
      printf("%ch",vstup[i]);
  }
  return 0;
}

A metodu read(). Scanf nepoužívám, protože je v zadání úlohy zakázaný.

char *read()
{
    static char line[4];
    int i;
    if (fgets(line, sizeof(line), stdin)) {
        if (1 == sscanf(line, "%d", &i)) {
            return line;
        }
    }
}

Výstup je následující
123 vstup
1h2h3h výstup
EDIT:
při použití putchar() se h neobjevují, ale byl bych rád, pokud tomu někdo přijde na kloub. Jinak kompiluji pomocí cygwin.

Editováno 30.1.2018 20:43
 
Nahoru Odpovědět
30.1.2018 20:41
Avatar
Odpovídá na Pavel Šrytr
Matúš Olejník:30.1.2018 20:48

Nemaj

printf("%ch",vstup[i]);

Ale

printf("%c",vstup[i]);
:-D
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
30.1.2018 20:48
/* I am not sure why this works but it fixes the problem */
Avatar
Pavel Šrytr
Člen
Avatar
Odpovídá na Matúš Olejník
Pavel Šrytr:30.1.2018 21:46

Dobře, to by mě opravdu kontrolovat nenapadlo, nevím jak jsem na něco takového přišel.

 
Nahoru Odpovědět
30.1.2018 21:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.