Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C Programmeerstrings

C Tekenreeksen programmeren

In deze tutorial leer je over strings in C-programmering. Aan de hand van voorbeelden leert u ze declareren, initialiseren en voor verschillende I/O-bewerkingen gebruiken.

In C-programmering is een string een reeks tekens die wordt afgesloten met een null-teken \0 . Bijvoorbeeld:

char c[] = "c string";

Wanneer de compiler een reeks tekens tussen de dubbele aanhalingstekens tegenkomt, voegt deze een null-teken toe \0 standaard aan het einde.


Hoe een string declareren?

Zo kunt u strings declareren:

char s[5];

Hier hebben we een string van 5 karakters gedeclareerd.


Hoe tekenreeksen initialiseren?

U kunt strings op een aantal manieren initialiseren.

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};

Laten we nog een voorbeeld nemen:

char c[5] = "abcde";

Hier proberen we 6 tekens toe te wijzen (het laatste teken is '\0' ) naar een char array met 5 karakters. Dit is slecht en je zou dit nooit moeten doen.


Waarden toewijzen aan strings

Arrays en strings zijn tweederangsburgers in C; ze ondersteunen de toewijzingsoperator niet zodra deze is gedeclareerd. Bijvoorbeeld,

char c[100];
c = "C programming";  // Error! array type is not assignable.

Opmerking: Gebruik in plaats daarvan de functie strcpy() om de tekenreeks te kopiëren.


Lees String van de gebruiker

U kunt de scanf() . gebruiken functie om een ​​string te lezen.

De scanf() functie leest de reeks tekens totdat deze een witruimte (spatie, nieuwe regel, tab, enz.) tegenkomt.


Voorbeeld 1:scanf() om een ​​string te lezen

#include <stdio.h>
int main()
{
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;
}

Uitvoer

Enter name: Dennis Ritchie
Your name is Dennis.

Hoewel Dennis Ritchie is ingevoerd in het bovenstaande programma, alleen "Dennis" werd opgeslagen in de naam snaar. Het is omdat er een spatie was na Dennis .

Merk ook op dat we de code name . hebben gebruikt in plaats van &name met scanf() .

scanf("%s", name);

Dit komt omdat naam is een char array, en we weten dat arraynamen vervallen tot pointers in C.

Dus de naam in scanf() verwijst al naar het adres van het eerste element in de string, daarom hoeven we & niet te gebruiken .


Hoe lees je een regel tekst?

U kunt de fgets() . gebruiken functie om een ​​regel string te lezen. En u kunt puts() . gebruiken om de tekenreeks weer te geven.


Voorbeeld 2:fgets() en puts()

#include <stdio.h>
int main()
{
    char name[30];
    printf("Enter name: ");
    fgets(name, sizeof(name), stdin);  // read string
    printf("Name: ");
    puts(name);    // display string
    return 0;
}

Uitvoer

Enter name: Tom Hanks
Name: Tom Hanks

Hier hebben we fgets() . gebruikt functie om een ​​string van de gebruiker te lezen.

fgets(name, sizeof(name), stdlin); // read string

De sizeof(name) resultaten tot 30. Daarom kunnen we maximaal 30 tekens als invoer nemen, wat de grootte is van de naam tekenreeks.

Om de string af te drukken, hebben we puts(name); . gebruikt .

Opmerking: De gets() functie kan ook zijn om input van de gebruiker te ontvangen. Het is echter verwijderd uit de C-standaard.

Het is omdat gets() stelt u in staat om elke lengte van tekens in te voeren. Er kan dus sprake zijn van een bufferoverloop.


Snaren doorgeven aan functies

Strings kunnen op dezelfde manier als arrays aan een functie worden doorgegeven. Meer informatie over het doorgeven van arrays aan een functie.


Voorbeeld 3:String doorgeven aan een functie

#include <stdio.h>
void displayString(char str[]);

int main()
{
    char str[50];
    printf("Enter string: ");
    fgets(str, sizeof(str), stdin);             
    displayString(str);     // Passing string to a function.    
    return 0;
}
void displayString(char str[])
{
    printf("String Output: ");
    puts(str);
}

Strings en Pointers

Net als bij arrays, worden stringnamen "vervallen" naar pointers. Daarom kunt u aanwijzers gebruiken om elementen van de tekenreeks te manipuleren. We raden u aan om C-arrays en -aanwijzers te controleren voordat u dit voorbeeld bekijkt.


Voorbeeld 4:Strings en Pointers

#include <stdio.h>

int main(void) {
  char name[] = "Harry Potter";

  printf("%c", *name);     // Output: H
  printf("%c", *(name+1));   // Output: a
  printf("%c", *(name+7));   // Output: o

  char *namePtr;

  namePtr = name;
  printf("%c", *namePtr);     // Output: H
  printf("%c", *(namePtr+1));   // Output: a
  printf("%c", *(namePtr+7));   // Output: o
}

Veelgebruikte tekenreeksfuncties

  • strlen() - berekent de lengte van een string
  • strcpy() - kopieert een string naar een andere
  • strcmp() - vergelijkt twee strings
  • strcat() - voegt twee strings samen

C Taal

  1. C#-tekenreeks
  2. Naamruimten in C#-programmering
  3. Array doorgeven aan een functie in C++-programmering
  4. C Programmeren van operators
  5. Java-strings
  6. Java enum Strings
  7. C++ Strings:strcpy(), strcat(), strlen(), strcmp() VOORBEELDEN
  8. Strings in C:variabele declareren, initialiseren, afdrukken, voorbeeld
  9. Python-strings:vervangen, samenvoegen, splitsen, omkeren, hoofdletters en kleine letters
  10. C Zelfstudie
  11. Java - Strings-klasse