Jak czytać ciąg w C. Język programowania C nie zapewnia rzeczywistego typu danych ciągu. W C napis jest emulowany przez tablicę znaków, która kończy się na NULL. Taka tablica może być zadeklarowana statycznie lub jako wskaźnik. Standard C zapewnia wiele funkcji do manipulowania tablicami znaków lub ciągami C. Ten artykuł koncentruje się na funkcjach odczytujących ze strumienia wejściowego i plików. Postępuj zgodnie z tymi wskazówkami, aby dowiedzieć się, jak czytać ciąg w języku C.
Krok 1
Zrozum podstawy. Ciąg C to tablica typu wykresu. Podobnie jak w przypadku wszystkich tablic w języku C, pierwszy element jest indeksowany na 0, a ostatni na „długość ciągu minus 1”. Zwykle kompilator wstawia NULL w ostatniej lokalizacji, więc ciąg może zawierać „długość ciągu minus 1” elementy. Null jest równoważne 0x00 w postaci liczby całkowitej i '\0' w postaci znaków. Dostęp do elementów uzyskuje się za pomocą operatora „[]”. Krok 2 ilustruje te koncepcje.
Wideo dnia
Krok 2
Dodaj poniższą dyrektywę „include” do dowolnego pliku źródłowego przed użyciem funkcji tego samouczka:
#include < stdio.h >
Krok 3
Zadeklaruj ciąg C. Poniższy kod przedstawia deklarację przy użyciu metody statycznej i metody wskaźnikowej:
// deklaracja statyczna char str[50] = {0}; // skrócony sposób inicjalizacji wszystkich elementów na 0 // str[49] is NULL // str ma pojemność 48 znaków // deklaracja przez znak wskaźnika pStr = NULL; // brak przydziału pamięci pStr = (char)mallok (50); // robi to "malloc()"
Krok 4
Wczytaj dane do ciągu C za pomocą funkcji „scanf()”, która odczytuje serię ciągów oddzielonych spacją od standardu i umieszcza je w adresach należących do odpowiednich zmiennych referencyjnych, zgodnie z „formatem strunowy":
int n; printf("Wpisz swoje imię i wiek: "); scanf("%s%d", str, &n); // printf("Nazywasz się %s i jesteś %d stary\n", str, n);
Krok 5
Umieść dane w ciągu C, używając prostszej funkcji „gets()”, która odczytuje dane ze standardowego wejścia tylko do ciągu:
printf("Wpisz swoje nazwisko: "); dostaje (str); printf("Twoje imię to %s\n", str);
Krok 6
Wczytaj dane pliku do łańcucha C za pomocą "fscanf()"; ta funkcja jest analogiczna do "scanf()":
PLIK* pPlik; pFile = fopen("mójPlik.txt", "r"); // załóż, że plik istnieje i zawiera dane if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Pierwszym słowem w pliku jest %s\n", str); fclose (pFile); }
Krok 7
Powtórz krok 5, używając funkcji „fgets()”, która działa tak samo jak „gets()”:
PLIK* pPlik; pFile = fopen("mójPlik.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Pierwszym słowem w pliku jest %s\n", str); fclose (pFile); }
Rzeczy, których będziesz potrzebować
C/C++ IDE lub kompilator C
Książka o języku C, na przykład „Język programowania C” Briana W. Kernighan
Wskazówka
Aby dowiedzieć się więcej o wymienionych funkcjach, odwiedź stronę C Plus Plus.
Ostrzeżenie
Nie próbuj kompilować tego kodu. Ma tylko zademonstrować funkcje. Nie jest to spójny program i podczas kompilacji będzie dawał błędy.