C Academy · Lektion

Bygg verktyg för tecken

Praktiska exempel.

Lektion 4 av 413 steg

Bygg verktyg för tecken är en gratis lektion i C Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C Academy innehåller totalt 4 lektioner.

Kombinera era kunskaper

Nu kan Ni bygga små, praktiska verktyg för tecken genom att kombinera teckenaritmetik, ctype-biblioteket och strängloopar.

Låt oss skriva några vanliga hjälpfunktioner.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char c = 'g';
    printf("Upper: %c\n", toupper(c));
    return 0;
}

Räkna vokaler

En vokalräknare jämför varje tecken med mängden a, e, i, o och u, oavsett skiftläge.

#include <stdio.h>
#include <ctype.h>

int count_vowels(const char *s) {
    int n = 0;
    for (int i = 0; s[i]; i++) {
        char c = tolower(s[i]);
        if (c=='a'||c=='e'||c=='i'||c=='o'||c=='u') n++;
    }
    return n;
}

int main(void) {
    printf("%d\n", count_vowels("Education"));
    return 0;
}

Vänd en sträng

Byt plats på tecken från de två ändarna och arbeta inåt för att vända en sträng på plats.

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

int main(void) {
    char s[] = "hello";
    int n = strlen(s);
    for (int i = 0; i < n / 2; i++) {
        char tmp = s[i];
        s[i] = s[n-1-i];
        s[n-1-i] = tmp;
    }
    printf("%s\n", s);
    return 0;
}

Kontrollera ett palindrom

Ett palindrom läses likadant framifrån och bakifrån. Jämför spegelvända positioner tills de möts.

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

int is_palindrome(const char *s) {
    int i = 0, j = strlen(s) - 1;
    while (i < j) {
        if (s[i] != s[j]) return 0;
        i++; j--;
    }
    return 1;
}

int main(void) {
    printf("%d\n", is_palindrome("level"));
    printf("%d\n", is_palindrome("world"));
    return 0;
}

Växla skiftläge

En funktion som växlar skiftläge gör versaler till gemener och tvärtom, medan icke-bokstäver lämnas oförändrade.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char s[] = "Hello World";
    for (int i = 0; s[i]; i++) {
        if (isupper(s[i])) s[i] = tolower(s[i]);
        else if (islower(s[i])) s[i] = toupper(s[i]);
    }
    printf("%s\n", s);
    return 0;
}

Ta bort icke-siffror

Behåll endast siffertecken från en sträng, vilket är användbart när telefonnummer ska rensas.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char *s = "(555) 123-4567";
    for (int i = 0; s[i]; i++) {
        if (isdigit((unsigned char)s[i])) putchar(s[i]);
    }
    putchar('\n');
    return 0;
}

Manuell atoi

Konvertera en numerisk sträng till ett heltal genom att ackumulera varje siffra: multiplicera den löpande totalsumman med 10 och lägg till siffrans värde.

#include <stdio.h>
#include <ctype.h>

int my_atoi(const char *s) {
    int n = 0;
    for (int i = 0; isdigit((unsigned char)s[i]); i++) {
        n = n * 10 + (s[i] - '0');
    }
    return n;
}

int main(void) {
    printf("%d\n", my_atoi("427") + 3);
    return 0;
}

Räkna ord

Räkna ord genom att upptäcka övergångar från blanktecken till ett tecken som inte är ett blanktecken.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char *s = "the quick brown fox";
    int words = 0, in_word = 0;
    for (int i = 0; s[i]; i++) {
        if (isspace((unsigned char)s[i])) in_word = 0;
        else if (!in_word) { in_word = 1; words++; }
    }
    printf("words = %d\n", words);
    return 0;
}

Inled ord med versal

Gör den första bokstaven i varje ord till versal genom att konvertera varje bokstav som följer efter ett blanktecken eller står först i strängen.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char s[] = "hello there friend";
    int start = 1;
    for (int i = 0; s[i]; i++) {
        if (isspace((unsigned char)s[i])) start = 1;
        else { if (start) s[i] = toupper(s[i]); start = 0; }
    }
    printf("%s\n", s);
    return 0;
}

Ett ROT13-chiffer

ROT13 förskjuter varje bokstav 13 steg och börjar om från början när alfabetets slut nås. Om Ni tillämpar det två gånger återställs originalet.

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char s[] = "Hello";
    for (int i = 0; s[i]; i++) {
        char c = s[i];
        if (isupper(c)) s[i] = 'A' + (c - 'A' + 13) % 26;
        else if (islower(c)) s[i] = 'a' + (c - 'a' + 13) % 26;
    }
    printf("%s\n", s);
    return 0;
}

Frekvensen för ett tecken

Räkna hur ofta ett visst tecken förekommer i en sträng med en enkel loop och jämförelse.

#include <stdio.h>

int main(void) {
    char *s = "mississippi";
    char target = 's';
    int count = 0;
    for (int i = 0; s[i]; i++) {
        if (s[i] == target) count++;
    }
    printf("'%c' appears %d times\n", target, count);
    return 0;
}

Snabbtest

Testa Era färdigheter i att skapa verktyg för tecken.

Sammanfattning

Ni har byggt praktiska verktyg för tecken:

  • Räkna vokaler, ord och teckenfrekvens.
  • Vända strängar och kontrollera palindrom.
  • Växla och ändra skiftläge.
  • Implementera en manuell atoi och ett ROT13-chiffer.
Gratis att börja

Lär dig C med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
39
Lektioner
144

Vanliga frågor

Är lektionen ”Bygg verktyg för tecken” gratis?

Ja – hela texten till ”Bygg verktyg för tecken” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Bygg verktyg för tecken”?

Praktiska exempel. Ni övar på C Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C Academy?

Du behöver inga förkunskaper. Utbildningen i C Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Bygg verktyg för tecken”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C Academy-lektionen?

Ja. Varje C Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Tecken som heltal
  2. Biblioteket ctype
  3. Läsa tecken
  4. Bygg verktyg för tecken
← Tillbaka till C Academy