Online C Compiler
Openen in de compiler

Nederlandse leereditie

Tekenreeksen en afsluiting in C

Beheer capaciteit, afsluiting, inlezen en vergelijken van tekenreeksen.

Openen in de compiler

Tekenreeksen en afsluiting in C
Beheer capaciteit, afsluiting, inlezen en vergelijken van tekenreeksen.

Een C-tekenreeks eindigt met een nulbyte. De buffer moet tekst en afsluiting bevatten. strlen telt bytes vóór de nul, maar kent niet zelf de objectcapaciteit.

fgets krijgt de capaciteit en kan het regeleinde bewaren. Controleer resterende ruimte en afsluiting bij kopiëren of samenvoegen. Wijzig geen letterlijke tekenreeks en lees niet onbeperkt in een vaste buffer.

Vergelijk inhoud met strcmp, niet adressen met ==. Test een lege tekenreeks, lange invoer en interne spaties. Bytes tellen is niet hetzelfde als Unicode-tekens tellen.

Broncode

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

int main(void) {
    printf("=== C Strings: Declaration & Manipulation ===\n\n");

    // 1. Mutable stack array
    char greeting[32] = "Hello";
    char name[] = "Programmer";

    printf("Initial greeting: %s (Length: %zu)\n", greeting, strlen(greeting));
    printf("Name: %s (Length: %zu)\n", name, strlen(name));

    // 2. Safe string concatenation with snprintf
    char full_message[64];
    snprintf(full_message, sizeof(full_message), "%s, %s! Welcome to C.", greeting, name);
    printf("Concatenated: %s\n", full_message);

    // 3. In-place string mutation
    greeting[0] = 'J'; // "Jello"
    printf("Modified greeting: %s\n", greeting);

    // 4. String comparison
    char word1[] = "apple";
    char word2[] = "banana";
    int cmp = strcmp(word1, word2);
    if (cmp < 0) {
        printf("\"%s\" comes before \"%s\" alphabetically (cmp = %d)\n", word1, word2, cmp);
    }

    // 5. String reversal in-place
    char text[] = "Online C Compiler";
    size_t len = strlen(text);
    for (size_t i = 0; i < len / 2; i++) {
        char temp = text[i];
        text[i] = text[len - 1 - i];
        text[len - 1 - i] = temp;
    }
    printf("Reversed string: %s\n", text);

    return 0;
}
Openen in de compiler

Verwacht resultaat

=== C Strings: Declaration & Manipulation ===

Initial greeting: Hello (Length: 5)
Name: Programmer (Length: 10)
Concatenated: Hello, Programmer! Welcome to C.
Modified greeting: Jello
"apple" comes before "banana" alphabetically (cmp = -1)
Reversed string: reliPmoC C enilnO

Veelgestelde vragen

Waarom blijven code en sommige resultaten Engels?

C-sleutelwoorden, namen, programmacommentaar en verwachte uitvoer blijven gelijk aan het origineel om uitvoerbare code en consistente tests te behouden. Uitleg en instructies zijn vertaald.