2013-12-02, 19:20
  #1
Medlem
Skulle behva lite hjlp p traven hur jag ska gra hr d jag hade svrt fatta tecken och strngar.

Skriv ett program som lser in en textstrng med hjlp av funktionen gets. Lt sedan programmet skriva ut hur mnga tecken som fanns i strngen.
Citera
2013-12-02, 19:50
  #2
Medlem
Uber0ns avatar
Kolla upp dokumentationen fr gets() samt strlen() s ska du se att du finner allt du behver och mer drtill.

Detta r vldigt enkla och grundlggande saker, s du tjnar nog mer p att lra dig leta rtt p svaren sjlv n att f ett facit p ngra rader.
Citera
2013-12-02, 20:04
  #3
Medlem
Ingen anvnder funktionen gets(). Den r i princip vrdels eftersom den r s farlig. Den fortstter att lsa in till ditt utrymme ven efter att det tar slut, och kraschar, eller nnu vrre skriver ver andra variabler och ger programmet konstigt beteende och/eller ett riktigt fett skerhetshl.

Anvnd fgets() med en array och en maxlngd p raden, eller hantera minnet sjlv med malloc() och realloc(). Det senare r en bttre lsning men antagligen ver-ver-kurs om du precis har brjat med C.

En C-strng r en radda med chars (i en array eller dynamiskt allokerat minne) som avslutas med NUL-tecknet '\0', som har heltalsvrdet 0. Chars r egentligen bara sm heltal som man lagrar teckenvrden i.

Fr den hr uppgiften behver du inte ens lagra texten du lser in. Det rcker med att lsa ett tecken i taget med getchar() och rkna dem. Du behver bara en summa-variabel.
Citera
2013-12-02, 20:32
  #4
Medlem
christerys avatar
Hmm, du ska f lite hjlp...

Kod:
#include <stdio.h>

int main()
{
   
char slask[50];

   
printf("Mata in tecken, inte mer n 49 dock : ");
// ls in strngen med valfri metod till slask, tex gets... 

   
printf(" *** Hr skriver du nt fiffigt som skriver ut lngden p slask   ****");

   return(
0);


Enkelt va?
Citera
2013-12-02, 20:59
  #5
Medlem
Hmm r jag p rtt spr iallafall?

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{
char str[50];
int sum = 0;

printf("Skriv string : ");


gets(str);
sum = sum + 1;


printf("Du skrev %d tecken",sum);

return(0);
}
Citera
2013-12-02, 21:18
  #6
Medlem
Tror det ska se ut lite shr dock s funkar den inte kra

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
char str[50];
int strlen(str);
int langd;

printf("Skriv string : ");
gets(str);
langd = strlen(str);

printf("Du skrev %d tecken",langd);
return(0);
}
Citera
2013-12-02, 22:33
  #7
Medlem
Citat:
Ursprungligen postat av waardahl
Tror det ska se ut lite shr dock s funkar den inte kra

Kod:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
int main(void)
{
   char str[50];
   int strlen(str);
   int langd;

   printf("Skriv string : ");
   gets(str);
   langd = strlen(str);

   printf("Du skrev %d tecken",langd);
   return(0);
}

Ta bort raden `int strlen(str);` strlen() r redan deklarerad i string.h.
Citera
2013-12-02, 23:05
  #8
Medlem
Aha tack fr hjlpen
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in