Toon posts:

[c] Een switch gebruiken met een karakter array

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
#include<stdio.h>
{
char array[8];
scanf ("%s",array);
switch (array) {
case "ha" doe iets
}

Maar dit werkt niet.
Hoe moet het dan?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zondag 07 oktober 2001 13:16 schreef M_KOS het volgende:
code:
1
2
3
4
5
6
7
#include<stdio.h>
{
char array[8];
scanf ("%s",array);
switch (array) {
case "ha" doe iets
}

Maar dit werkt niet.
Hoe moet het dan?
basic
code:
1
2
3
4
5
6
7
8
#include<stdio.h>
void main()
{
char array[8];
scanf ("%s",array);
switch (array) {
case "ha" doe iets
}

Doet iets met Cloud (MS/IBM)


Verwijderd

Op zondag 07 oktober 2001 13:16 schreef M_KOS het volgende:
code:
1
2
3
4
5
6
7
#include<stdio.h>
{
char array[8];
scanf ("%s",array);
switch (array) {
case "ha" doe iets
}

Maar dit werkt niet.
Hoe moet het dan?
char[] ingevuld door users kun je niet zomaar vergelijken met "" literals, kijk eens naar strcmp().

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:35
Volgnes mij kan je geen switch gebruiken met array's.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Op zondag 07 oktober 2001 13:32 schreef whoami het volgende:
Volgnes mij kan je geen switch gebruiken met array's.
Weten jullie dan iets anders wat op switch lijkt.
Want ik heb een programma geschreven met een hele opsomming.
Om dan steeds strcmp te gebruiken word de code wel erg rommelig.

Verwijderd

Topicstarter
Niemand?

Verwijderd

Lees de faq es wat vaker?
Policy mbt het omhoogschoppen van threads. Wacht minstens 24 uur voor je je topic omhoog schopt. Doe dit dan ook alleen met een zinnige opmerking en dus niet met "Waarom antwoord er nou niemand" nadat je 5 minuten geen antwoord hebt gahd. Sommigen van ons hebben een leven
En een nette if else tak met strcmp's is imho net zo netjes als een switch hoor.

Verwijderd

Topicstarter
Op zondag 07 oktober 2001 13:58 schreef Yarvieh het volgende:
Lees de faq es wat vaker?
[..]

En een nette if else tak met strcmp's is imho net zo netjes als een switch hoor.
Bedankt ik heb het probleem opgelost door middel van else if te doen.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op zondag 07 oktober 2001 13:16 schreef M_KOS het volgende:
code:
1
2
3
4
5
6
7
#include<stdio.h>
{
char array[8];
scanf ("%s",array);
switch (array) {
case "ha" doe iets
}

Maar dit werkt niet.
Hoe moet het dan?
Als je nu even in de ***HELPFILES*** had gelezen had je daar het volgende zien staan:
The expression must be of an integral type or of a class type for which there is an unambiguous conversion to integral type.
Oftewel je mag alleen switchen op integrale types of classes die een impliciete conversie naar een integraal type toestaan, en dan vergelijkbaar is met een constante. Dus op: char, short, int, long, __int64, allemaal signed of unsigned.

edit:

Zie net dat je vraag over C gaat dus de rest van deze post mag je voorlopig vergeten :)


Switchen op een class is toegestaan als ie een functie als volgt heeft:
code:
1
2
3
4
5
6
class MyClass
{
...
  operator int()    { return x; }
...
};

Omdat de class dan feitelijk als integraal type gebruikt kan worden in de volgende statement:
code:
1
2
  MyClass     Piet;
  int       Jan   = Piet;

Professionele website nodig?

Pagina: 1