1 / 15

Strings

Strings. Declaration & Initialization Input/Output using printf and scanf. Strings. Strings are multiple characters in a certain order “my car” “Please enter three integers” C allows variable types for single characters, but not for strings

chase
Download Presentation

Strings

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Strings Declaration & Initialization Input/Output using printf and scanf

  2. Strings • Strings are multiple characters in a certain order • “my car” • “Please enter three integers” • C allows variable types for single characters, but not for strings • char type arrays are used to represent strings • Strings in C are terminated by the null character, ‘\0’ • So the string “my car” • Notice that space is counted as a character • Need to add the null character to the end of the string • Minimum length of array needed is 7 (including the null character) • What is the minimum length of an array to store “Please enter three integers” 28 CENG 114

  3. Declaring and Initializing Strings • Strings are declared as arrays of characters char FirstName[15]; char LastName[25]; • Strings can also be defined as constants #define ERR1 “Date is wrong” #define ERR2 “Cannot Leave Name Field Blank” • Strings can be initialized when they are declared charF1[15] = {'S', 'a', 'd', 'i', 'k'}; charF2[15] = "Sadik"; charL1[25] = {'E', 's', 'm', 'e', 'l', 'i', 'o', 'g', 'l', 'u'}; charL2[25] = "Esmelioglu"; CENG 114

  4. Strings in Memory Problem • char x[15] = “John Smith” • char x[15] = “John Adam Smith” • Length of the string should be one less than the array size CENG 114

  5. Example • #include <stdio.h> • int main(void) { • inti; • charF1[5] = {'S', 'a', 'd', 'i', 'k'}; • charF2[6] = "Sadik"; • printf("%s\n", F1); • printf("%s\n", F2); • for(i=0; i<5; i++) printf("%d\n", F1[i]); • printf("\n"); • for(i=0; i<6; i++) printf("%d\n", F2[i]); • printf("\n"); • return(0); • }

  6. Printing Strings • Using printf • %s is the placeholder for strings • example printf(“%s”, “This is a book”); prints >This is a book printf(“%s*%s”, “123456”, “123”); prints >123456*123 printf(“%8s*%5s”, “12345”, “123”); prints >12345*123 CENG 114

  7. Printing Strings • Normally strings are right justified, but a minus sign after the % sign makes the string left justified printf(“%s*%s”, “123456”, “123”); prints >123456*123 printf(“%5s\n%5s\n%5s\n”, “Ana”, “Baba”, “Cocuk”); prints > Ana > Baba >Cocuk printf(“%-5s\n%-5s\n%-5s\n”, “Ana”, “Baba”, “Cocuk”); prints >Ana >Baba >Cocuk CENG 114

  8. Reading Strings • Reading strings with scanf works the same way as reading numbers: • scanning for strings starts after the first white space character and ends when a white space character is reached (white space characters are spaces, tabs, newlines, …) • a null character (‘\0’) is placed after the last character read. CENG 114

  9. Reading Strings user enters >John > char x[8]; scanf(“%s”, x); • or user enters > John > • or user enters > > > John > The entry is stored in memory as shown: CENG 114

  10. Reading Strings char c [5]; int n; char d [5]; int t; scanf(“%s %d %s %d”, c, &n, d, &t); user enters >CENG 114 Thu 240 > or user enters >CENG > 114 Thu > 240 > The entries are stored in memory as shown: CENG 114

  11. Arrays of Strings • Strings are arrays of characters  single dimensional arrays • Lists are arrays of strings  two dimensional arrays • Players • Ahmet • Hasan • Naciye • Ayse • Nuri • This list can be represented as a two dimensional array (5 rows, ? columns) char Players[5][7] = {“Ahmet”, “Hasan”, “Naciye”, “Ayse”, “Nuri”} CENG 114

  12. Storing in Memory All have a value of 7000 Player[0] &Player[0][0] Player Player[0] Player[1] Player[2] Player[3] Player[4] CENG 114

  13. Example • Write a program that will read last names and grades of students. Each time a student record is read, the program will ask the user if s/he wants to continues. CENG 114

  14. Example #include <stdio.h> #define NUM_STD100 /* Maximum number of students */ #define NM_LEN15 /* Maximum length of each name */ int main(void) { char name[NUM_STD][NM_LEN]; /* Array of student names */ int Grade[NUM_STD];/ /* Array of student grades */ inti = 0; /* Loop index */ intnum_std = 0; /* Actual num of students read */ char ans = 'y'; /* if equals 'y' continue reading */ char junk; /* reading newlines */ CENG 114

  15. Example while(ans == 'y') { printf("Please enter Last Name and Grade: "); scanf("%s %d", name[i], &Grade[i]); i++; printf("\nAre there more students? [y/n]: "); scanf("%c%c%c", &junk, &ans, &junk); } num_std = i; for(i = 0; i < num_std; i++) printf("\n%-20s\t%4d\n", name[i], Grade[i]); return(0); } CENG 114

More Related