Tecken & Strängar. Kapitel 7

Relevanta dokument
Föreläsning 11. Strängar

Vad har vi lärt oss så här långt Vad är en sträng? Strängkonstanter. Att skriva ut och läsa in strängar. Att arbeta med strängar.

Övning från förra gången: readword

Loopar och datatyper. Föreläsning 3

Loopar och datatyper. Föreläsning 3

C++ Lektion Tecken och teckenfält

Enkla datatyper minne

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde.

4 Sammansatta datatyper

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Omtentamen i Programmering C, Fri, Kväll,

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Hantering av textsträngar och talsträngar. William Sandqvist

Programmering i C++ EDAF hp. EDAF30 (Föreläsning 2) HT / 18

Föreläsning 7 Strängar

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

#include <stdio.h> #include <string.h>

Strängar. Strängar (forts.)

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 13. In- och utmatning

2 Pekare och dynamiska variabler.

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

En kort text om programmering i C.

C-programmering, föreläsning 2 Jesper Wilhelmsson

Tentamen i Programmering grundkurs och Programmering C

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, Kväll,

Tentamen *:58/ID100V Programmering i C Exempel 3

Programmering, grundkurs, 8.0 hp HI1024, TEN1. Fredagen den 2 mars 2012

C-programmering. Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

4 Sammansatta datatyper

översiktskurs (5DV031)

Tentamen i Programmering grundkurs och Programmering C

*Pekarvärden *Pekarvariabler & *

C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories.

Lämna in en ifylld kursvärdering tillsammans med tentan! Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl

Tentamen i Programmering grundkurs och Programmering C

Exempelsamling Assemblerprogrammering

Dagens föreläsning. Specialtecken. Mer om printf. Formateringssträngar. Mer om scanf. Programmeringsteknik för Ingenjörer VT05

Tecken. char. char ch = A ; sizeof(char) = 1 byte (ej 16-bitars tecken som i Java) char namn[]= "Nils"; // längd = 5 bytes

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl

Deklarera en struct som kan användas för att representera en rät linje

Funktioner och programstruktur. Föreläsning 5

Funktioner och programstruktur. Föreläsning 5

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

Tentamen i Programmering grundkurs och Programmering C

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Användning av stack: evaluera uttryck i RPN

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Föreläsning 12. struct

Programmeringsteknik med C och Matlab

Kap 4: Mer om char och stränghantering

struct egendefinierad typ struct LECTURE_TYPE { char teacher[99]; float lengthinminutes; char type; /* L = lecture, E = exercise */ };

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

Exempel ( )

Indexerade variabler

Uppgifter till praktiska tentan, del A. (7 / 27)

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13. Omtentamen i Programmering C, 5p, A1, D1, PA1, Fri,

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

Pekare och arrayer. Indexering och avreferering

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Programmering Grundkurs (HI1900) Teoridel

Introduktion till programmering SMD180. Föreläsning 7: Strängar

Poster ( structar ) Postdeklarationer

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Innehållsförteckning. Exempel. Åtkomst & användarhandledning

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

Föreläsning 9. Repetition och exempelproblem

Heltal(int) Programmeringsteknik 54

Objektorienterad Programmering (TDDC77)

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Programmering i C, 7,5 hp

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Kapitel Datatypen char

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Tentamen Grundläggande programmering

Tentamen i Programmering grundkurs och Programmering C

Planering Programmering grundkurs HI1024 HT 2014

Föreläsning 9. struct

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

C-programmering, föreläsning 1 Jesper Wilhelmsson

Programmeringsuppgifter 1

tentaplugg.nu av studenter för studenter

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering

Föreläsning 4: Poster

Chapter 3: Using Classes and Objects

Mattias Wiggberg Collaboration

Transkript:

Tecken & Strängar Kapitel 7

Datatypen char Alla tecken i teckenuppsättningen Synliga och andra ASCII American Standard Code for Information Interchange Numera 256 tecken (8 bitar (2 8 ) numreras 0..255) Ett enskilt värde anges med enkelsnuttar 't', '5', 'W', '!' HT2012 thomasj, marie, kallin@cs.umu.se F5-2

Datatypen char char är en datatyp på samma sätt som int eller float char c; // ett enda tecken c = 'A'; Egentligen heltalstyp! T.ex. '0' 48, 'A' 65, 'a' 97 'A' < 'a' HT2012 thomasj, marie, kallin@cs.umu.se F5-3

ASCII-tabellen HT2012 thomasj, marie, kallin@cs.umu.se F5-4

Extended ASCII (PC) HT2012 thomasj, marie, kallin@cs.umu.se F5-5

ANSI (Windows) HT2012 thomasj, marie, kallin@cs.umu.se F5-6

"Kodf\x94rvirring" Olika system använder olika teckenkoder Tangenten lilla ä i Windows ger koden \xe4, som visas som i kommandofönstret \x94 ger lilla ö t.ex. \xnn kan användas som ett tecken och även i texter HT2012 thomasj, marie, kallin@cs.umu.se F5-7

Att arbeta med tecken Läs med getchar() finns i stdio.h Skriv ut med putchar() eller printf() Många funktioner för tecken T.ex. isalpha() finns i ctype.h Kontrollerar om parametern är en bokstav Fler: isdigit(), islower(), isupper(), ispunct(), isspace() mm. HT2012 thomasj, marie, kallin@cs.umu.se F5-8

#include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void){ char c; Exempel printf("skriv ett tecken : "); c = getchar(); if (isalpha(c)) printf("%c är en bokstav\n", c); if (isdigit(c)) printf("%c är en siffra\n", c); if (isspace(c)) printf("%c är ett mellanslag eller en tab\n", c); } return 0; HT2012 thomasj, marie, kallin@cs.umu.se F5-9

ASCII-koden #include <stdio.h> #include <stdlib.h> int main(void) { char c; do { printf("skriv ett tecken, avsluta med X : "); c = getchar(); printf("ascii-koden för %c är %d\n", c, c); } while (c!= 'X'); } return 0; HT2012 thomasj, marie, kallin@cs.umu.se F5-10

#include <stdio.h> #include <ctype.h> int main(void){ const int MAXSTRING = 100; char c, name[maxstring]; int i = 0, j; int antal = 0; printf("hej! Vad heter du? "); while ((c = getchar())!= '\n') { name[i] = c; if (isalpha(c)) // om vi hittat bokstav antal = antal + 1; i++; } name[i] = '\0'; Have a nice day! HT2012 thomasj, marie, kallin@cs.umu.se F5-11

Have a nice day! printf("trevligt att träffas %s.\n",name); printf("baklänges blir ditt namn "); for (j = i-1; j >= 0; j--) putchar(name[j]); printf("du har %d bokstäver i ditt namn.\n", antal); printf("ha en bra dag!\n"); } return 0; HT2012 thomasj, marie, kallin@cs.umu.se F5-12

Körning Hej! Vad heter du? Marie Trevligt att träffas Marie. Baklänges blir ditt namn eiram Du har 5 bokstäver i ditt namn. Ha en bra dag! HT2012 thomasj, marie, kallin@cs.umu.se F5-13

Strängar Egentligen en array av tecken char str[10] = "Min text!"; Strängslutet markeras med '\0' Tecknet med ASCII-värdet 0 Nolltecknet NUL eller NULL 0 1 2 3 4 5 6 7 8 9 str 'M' 'i' 'n' ' ' 't' 'e' 'x' 't' '!' \0 77 105 110 32 116 101 120 116 33 0 HT2012 thomasj, marie, kallin@cs.umu.se F5-14

Läsa strängar I stdio.h finns getchar() Läser ett tecken i taget Resultatet kan testas mot \n I stdio.h finns även gets() Läser till \n Returnerar en "sträng" Måste se till att \0 ryms! Säkrare att använda är fgets(str, length, stdin); Men scanf() då? Läser ett "token" HT2012 thomasj, marie, kallin@cs.umu.se F5-15

Skriva strängar Enkelt med printf() Conversion character %s för strängar %c för ett enstaka tecken %d om man vill se ASCII-koden (heltal) Man kan också använda puts() puts("hej på dej"); men då kan man bara skriva ut text HT2012 thomasj, marie, kallin@cs.umu.se F5-16

Operationer på strängar I string.h finns många funktioner strlen(str) ger antal tecken i str strcmp(s1, s2) retunerar om (s1<s2), 0 om (lika) eller + om (s1>s2) strcat(s1, s2) retunerar s1 konkatenerad med s2 i s1 strcpy(s1, s2), strncpy(s1, s2, len) tecknen i s2 kopieras till s1, max len st HT2012 thomasj, marie, kallin@cs.umu.se F5-17