C Academy · Lektion

Opbygning af char-værktøjer

Praktiske eksempler

Lektion 4 af 413 trin

Opbygning af char-værktøjer er en gratis C Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C Academy-kurset indeholder 4 lektioner i alt.

Kombination af det, du ved

Nu kan du bygge små, praktiske tegnværktøjer ved at kombinere tegnaritmetik, ctype-biblioteket og strengløkker.

Lad os skrive nogle almindelige hjælpefunktioner.

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

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

Tælling af vokaler

En vokaltæller sammenligner hvert tegn med mængden a, e, i, o og u, både som store og små bogstaver.

#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;
}

Vending af en streng

Byt tegn fra de to ender, mens du bevæger dig ind mod midten, for at vende en streng på stedet.

#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;
}

Kontrol af et palindrom

Et palindrom læses ens forfra og bagfra. Sammenlign spejlede positioner, indtil de mødes.

#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;
}

Skift mellem store og små bogstaver

En funktion til skift af store og små bogstaver gør store bogstaver små og omvendt, mens andre tegn forbliver uændrede.

#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;
}

Fjernelse af ikke-cifre

Behold kun ciffertegn fra en streng. Det er nyttigt til rensning af telefonnumre.

#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;
}

Manuel atoi

Konverter en numerisk streng til et heltal ved at akkumulere hvert ciffer: gang den løbende total med 10, og læg cifferets værdi til.

#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;
}

Tælling af ord

Tæl ord ved at registrere overgange fra blanktegn til et tegn, der ikke er et blanktegn.

#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;
}

Skriv ord med stort begyndelsesbogstav

Gør det første bogstav i hvert ord stort ved at konvertere ethvert bogstav til stort, hvis det følger efter et blanktegn eller står først i strengen.

#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;
}

En ROT13-kryptering

ROT13 forskyder hvert bogstav 13 pladser og går rundt, når alfabetets slutning nås. Hvis du anvender den to gange, gendannes originalen.

#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;
}

Hyppigheden af et tegn

Tæl, hvor ofte et bestemt tegn forekommer i en streng, med en simpel løkke og sammenligning.

#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;
}

Hurtigt tjek

Test dine færdigheder i tegnværktøjer.

Opsummering

Du har bygget praktiske tegnværktøjer:

  • Tælling af vokaler, ord og tegnfrekvens.
  • Vending af strenge og kontrol af palindromer.
  • Skift og ændring af store og små bogstaver.
  • Implementering af manuel atoi og ROT13-kryptering.
Gratis at komme i gang

Lær C med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
39
Lektioner
144

Ofte stillede spørgsmål

Er lektionen “Opbygning af char-værktøjer” gratis?

Ja — hele teksten til “Opbygning af char-værktøjer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C Academy-kurset, skal du opgradere til CoddyKit PRO. C Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Opbygning af char-værktøjer”?

Praktiske eksempler Du øver dig i C Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C Academy?

Der kræves ingen tidligere erfaring. C Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Opbygning af char-værktøjer”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C Academy-lektion?

Ja. Alle C Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Tegn som heltal
  2. ctype-biblioteket
  3. Læsning af tegn
  4. Opbygning af char-værktøjer
← Tilbage til C Academy