potreboval bych naprogramovat tohle: uzivatel zada vetu napr. JAK SE MAS? program by ji mel rozeznat a napsat na to napr.DOBRE pokud by uzivatel zadal jinou vetu tak by pocitac odpovede NEROZUMIM...nevite nekdo co s tim?
Fórum › C / C++
Pomooooc
neco tu mam ale neni to spravne nevim jak do if dat cele slovo takze to mam blbe ale nejak takhle bych to udelal az na ty chyby mozna nekdo pomuze a opravi chyby
#include <stdio.h>
#include <stdlib.h>
int main()
{
char c[5];
printf("Jak se mas");
scanf("%s",&c);
if (c=='dobre')
printf("to jsem rad");
else
printf("Nerozumim");
}
Porovnání řetězců se provadí pomocí strcmp(char1, char2). Pokud se fce == 0, řetězce se rovnají. Více http://www.cplusplus.com/reference/clibrary/cstring/strcmp.html
To Kobi :
#include <stdio.h>
#include <stdlib.h>
int main()
{
/* !! */
char *veta = "Jak se mas?";
char *vstup;
scanf("%s", vstup);
if (strcmp(veta, vstup) == 0) {
printf ("To jsem rad");
} else {
printf ("Nerozumím");
}
return;
}
Pánové chtělo to trošku předělat:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *veta = "Jak se mas?";
char vstup[100];
fgets(vstup,100, stdin);
vstup[strlen(vstup)-1]='\0'; // konec radku nechceme
if (stricmp(veta, vstup) == 0) {
printf ("To jsem rad");
} else {
printf ("Nerozumím");
}
return;
}
To tomas :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
/* !! */
char veta[] = "Jak se mas?";
char *vstup;
scanf("%s", vstup);
if (strcmp(veta, vstup) == 0) {
printf ("To jsem rad");
} else {
printf ("Nerozumím");
}
return 0;
}
zda se ze jsem taky vysel ze cviku...tohle jsem uz zkousel a jede to...#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *veta = "Jak se mas?";
char *vetaII = "Ahoj";
char vstup[100];
fgets(vstup,100, stdin);
vstup[strlen(vstup)-1]='\0'; // konec radku nechceme
if (stricmp(veta, vstup) == 0) {
printf ("To jsem rad\n");
} else {
printf ("Nerozumim");
}
fgets(vstup,100, stdin);
vstup[strlen(vstup)-1]='\0'; // konec radku nechceme
if (stricmp(vetaII, vstup) == 0) {
printf ("Nazdar\n");
} else {
printf ("Nerozumim");
}
system("PAUSE");
return 0;
}
no neco sem z toho namixoval...funguje to...to jo...ale mam dalsi problem...takhle to funguje pokud se vety pisou v tom poradi v jakym se zanasely...ale kdyz nejdriv napisu AHOJ tak mi to hodi NEROZUMIM....slo by nejak udelat aby bylo jedno co se napise driv...aby vzdycky vyhodil spravnou reakci
To o-lox : jediny nedostatek je pouziti scanf, nejlepsi by bylo opravdu pouzit "fgets", ale uz se mi to zase nechce prepisovat :))
tak kdo nas vysvobodi z teto slamastyky a hodi sem kompletni, funkcni zdrojak? jdu si dat kafe, tohle se mi uz dlouho nestalo... :)))
To tomas :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char *veta[2] = {"Jak se mas?","Ahoj"};
char vstup[100];
fgets(vstup,100, stdin);
vstup[strlen(vstup)-1]='\0'; // konec radku nechceme
for (i=0;i<2;i++)
if (stricmp(veta[i], vstup) == 0) {
switch (i) {
case 0:
printf ("To jsem rad\n");
return;
case 1:
printf ("Nazdar\n");
return;
}
}
printf ("Nerozumim");
}
I ty odpovedi muzes dat do pole uplne obdobne.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Řešení vkládání denního menu POMOOOOC — založil Martin
Moderátoři diskuze