Низови у Ц (са примерима)

У овом упутству ћете научити о стринговима у програмирању на језику Ц. Научићете да их декларишете, иницијализујете и користите за разне И / О операције уз помоћ примера.

У Ц програмирању, низ је низ знакова који се завршавају нулом . На пример:

 char c() = "c string"; 

Када компајлер наиђе на низ знакова затворених у двоструким наводницима, подразумевано додаје нулу на крају.

Како прогласити низ?

Ево како можете пријавити низове:

 char s(5); 

Овде смо прогласили низ од 5 знакова.

Како иницијализовати низове?

Низове можете иницијализовати на више начина.

 char c() = "abcd"; char c(50) = "abcd"; char c() = ('a', 'b', 'c', 'd', ''); char c(5) = ('a', 'b', 'c', 'd', ''); 

Узмимо још један пример:

 char c(5) = "abcde";

Овде покушавамо да доделимо 6 знакова (последњи знак '') charнизу који има 5 знакова. Ово је лоше и никада то не би требало да радите.

Додељивање вредности стринговима

Низови и низови су грађани другог реда у Ц; не подржавају оператор доделе након што је проглашен. На пример,

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

Напомена: Користите функцију стрцпи () да бисте уместо тога копирали низ.

Прочитајте Стринг од корисника

Помоћу scanf()функције можете читати низ.

scanf()Функција чита низ карактера док не наиђе на размак (простор, нови ред, картица, итд).

Пример 1: сцанф () за читање низа

 #include int main() ( char name(20); printf("Enter name: "); scanf("%s", name); printf("Your name is %s.", name); return 0; ) 

Оутпут

 Унесите име: Деннис Ритцхие Ваше име је Деннис.

Иако је Деннис Ритцхие уписан у горе наведени програм, само „Деннис“ је сачуван у низу имена. То је зато што је постојао простор после Денниса.

Како прочитати ред текста?

Помоћу fgets()функције можете прочитати ред низа. И, можете користити puts()за приказ низа.

Пример 2: фгетс () и пут ()

 #include int main() ( char name(30); printf("Enter name: "); fgets(name, sizeof(name), stdin); // read string printf("Name: "); puts(name); // display string return 0; ) 

Оутпут

 Унесите име: Том Ханкс Име: Том Ханкс 

Овде смо користили fgets()функцију за читање низа од корисника.

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

У sizeof(name)резултати до 30. Стога, можемо узети максимално 30 знакова, као улаз који је величине имена низа.

За штампање низа смо користили puts(name);.

Напомена:gets() функција може бити да се улаз од корисника. Међутим, уклања се из стандарда Ц.
То је зато што gets()вам омогућава да унесете било коју дужину знакова. Стога може доћи до преливања међуспремника.

Прослеђивање стрингова функцијама

Низови се могу пренети функцији на сличан начин као низови. Сазнајте више о прослеђивању низова функцији.

Пример 3: Прослеђивање низа у функцију

 #include 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); ) 

Жице и показивачи

Слично низу, називи низова се „распадају“ показивачима. Стога можете користити показиваче за манипулацију елементима низа. Препоручили смо вам да проверите низове Ц и показиваче пре него што проверите овај пример.

Пример 4: жице и показивачи

 #include 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 )

Уобичајене функције низа

  • стрлен () - израчунава дужину низа
  • стрцпи () - копира низ у други
  • стрцмп () - упоређује два низа
  • стрцат () - спаја два низа

Занимљиви Чланци...