Computer Science 210 Computer Organization

Slides:



Advertisements
Similar presentations
1 Chapter 10 Strings and Pointers. 2 Introduction  String Constant  Example: printf(“Hello”); “Hello” : a string constant oA string constant is a series.
Advertisements

Lecture 20 Arrays and Strings
What is a pointer? First of all, it is a variable, just like other variables you studied So it has type, storage etc. Difference: it can only store the.
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 122 – Data Structures Characters and Strings.
C Programming Strings. Array of characters – most common type of array in C  Let’s make them easier for use Denote the end of array using a special character.
Computer Science 210 Computer Organization Strings in C.
Strings in C. Strings are Character Arrays Strings in C are simply arrays of characters. – Example:char s [10]; This is a ten (10) element array that.
In Addition... To the string class from the standard library accessed by #include C++ also has another library of string functions for C strings that can.
Chapter 9 Character Strings 9.1 Character String Constants A character string constant is a sequence of characters enclosed in double quotation mark. Examples.
Lone Leth Thomsen Input / Output and Files. April 2006Basis-C-8/LL2 sprintf() and sscanf() The functions sprintf() and sscanf() are string versions of.
CP104 Introduction to Programming File I/O Lecture 33 __ 1 File Input/Output Text file and binary files File Input/output File input / output functions.
File IO and command line input CSE 2451 Rong Shi.
APS105 Strings. C String storage We have used strings in printf format strings –Ex: printf(“Hello world\n”); “Hello world\n” is a string (of characters)
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI C-Style Strings Strings and String Functions Dale Roberts, Lecturer.
Memory Layout, File I/O Bryce Boe 2013/06/27 CS24, Summer 2013 C.
Representing Strings and String I/O. Introduction A string is a sequence of characters and is treated as a single data item. A string constant, also termed.
1 Character Strings (Cstrings) Reference: CS215 textbook pages
CSC141- Introduction to Computer programming Teacher: AHMED MUMTAZ MUSTEHSAN Lecture – 21 Thanks for Lecture Slides:
Strings Programming Applications. Strings in C C stores a string in a block of memory. The string is terminated by the \0 character:
1 Pointers: Parameter Passing and Return. 2 Passing Pointers to a Function Pointers are often passed to a function as arguments  Allows data items within.
C Primer Session – 1/25/01 Outline Hello World Command Line Arguments Bit-wise Operators Dynamic Memory / Pointers Function Parameters Structures.
1 Arrays and Pointers The name of an array is a pointer constant to the first element. Because the array’s name is a pointer constant, its value cannot.
IO revisited CSE 2451 Rong Shi. stdio.h Functions – printf – scanf(normally stops at whitespace) – fgets – sscanf Standard streams – stdin(defaults to.
Connecting to Files In order to read or write to a file, we need to make a connection to it. There are several functions for doing this. fopen() – makes.
Dale Roberts Department of Computer and Information Science, School of Science, IUPUI CSCI 230 Characters and Strings Dale Roberts, Lecturer Computer Science,
CSE 251 Dr. Charles B. Owen Programming in C1 Strings and File I/O.
Principles of Programming - NI Chapter 10: Character & String : In this chapter, you’ll learn about; Fundamentals of Strings and Characters The difference.
LINKED LISTS.
Strings CSCI 112: Programming in C.
Computer Science 210 Computer Organization
ECE Application Programming
C Characters and Strings
Fundamentals of Characters and Strings
ICS103 Programming in C Lecture 15: Strings
Characters and Strings
Chapter 22 – part a Stream refer to any source of input or any destination for output. Many small programs, obtain all their input from one stream usually.
Lecture 8 String 1. Concept of strings String and pointers
Command Line Arguments
Computer Science 210 Computer Organization
Chapter 18 I/O in C.
Input / Output functions in C
CSC215 Lecture Input and Output.
Plan for the Day: I/O (beyond scanf and printf)
Strings A string is a sequence of characters treated as a group
Computer Science 210 Computer Organization
Arrays in C.
CS111 Computer Programming
Programming in C Input / Output.
Input and Output Lecture 4.
Computer Science 210 Computer Organization
Input / Output functions in C
C Stuff CS 2308.
I/O in C Lecture 6 Winter Quarter Engineering H192 Winter 2005
Computer Science 210 Computer Organization
Strings.
CSE1320 Strings Dr. Sajib Datta
C What you Know* Objective: To introduce some of the features of C. This assumes that you are familiar with C++ or java and concentrates on the features.
Introduction to Computer Organization & Systems
Strings.
ICS103 Programming in C Lecture 15: Strings
Programming in C Input / Output.
EECE.2160 ECE Application Programming
Arrays.
Strings Adapted from Dr. Mary Eberlein, UT Austin.
Introduction to C EECS May 2019.
Strings #include <stdio.h>
Characters and Strings Functions
Strings Adapted from Dr. Mary Eberlein, UT Austin.
C Characters and Strings
Chapter 18 I/O in C.
Presentation transcript:

Computer Science 210 Computer Organization Strings and Text Files in C

Representing Strings printf("Hi Ken!\n"); 'H' 'i' ' ' 'K' 'e' 'n' '!' '\n' null A string is a set of ASCII values that inhabit a sequence of bytes A string should always end in a null character (ASCII 0) Many string functions use null as a sentinel

The String “Type” and Variables char *greeting = "Hi Ken!\n"; printf("%s", greeting); greeting 'H' 'i' ' ' 'K' 'e' 'n' '!' '\n' null The pointer to a char named greeting holds the address of the first byte The standard string processing functions view strings as of type char*

The String “Type” and Variables char *greeting = "Hi Ken!\n"; printf("%s", greeting); greeting 'H' 'i' ' ' 'K' 'e' 'n' '!' '\n' null GREETING .STRINGz "Hi Ken!\n" LEA R0, GREETING PUTS

View a String as an Array of char char *greeting = "Hi Ken!\n"; for (int i = 0;; greeting[i] != 0; i++) putchar(greeting[i]); greeting 'H' 'i' ' ' 'K' 'e' 'n' '!' '\n' null A string looks like an array in memory So, we can use an index to access or modify a character in any cell

The string Library and strlen #include <string.h> char *greeting = "Hi Ken!\n"; for (int i = 0; i < strlen(greeting); i++) putchar(greeting[i]); greeting 'H' 'i' ' ' 'K' 'e' 'n' '!' '\n' null The string library includes several common string functions (length, concatenation, comparison, etc.) strlen is O(n), because it searches for the null character

The string Library Function What it does int strlen(char *str) Returns the number of characters in the string, not including the nul character. strcmp(char *str1, char *str2) Returns 0 if str1 equals str2, a negative integer if str1 < str2, or a positive integer if str1 > str2. strcat(char *str1, char *str2) Adds the characters in str2 to the end of str1, overwriting its nul character. strcpy (char *str1, char *str2) Copies the characters of str2 into the storage of str1. There must be enough storage! You can pass either a char* or a char array to these functions

The ctype Library #include <string.h> #include <ctype.h> char *greeting = "Hi Ken!\n"; int i = 0; for (; i < strlen(greeting); i++) greeting[i] = toupper(greeting[i]); greeting 'H' 'I' ' ' 'K' 'E' 'N' '!' '\n' null The ctype library includes several common character functions (test for letter or digit, convert to uppercase, etc.)

String Input with scanf #include <stdio.h> int main(){ char name[20]; printf("Enter your first name: "); scanf("%s", name); printf("%s\n", name); } scanf stops at the first whitespace character and adds a nul character (works for one-word inputs) Must pass scanf the storage, usually an array of char

String Input with gets #include <stdio.h> int main(){ char name[20]; printf("Enter your first name: "); gets(name); printf("%s\n", name); } gets stops at the first newline character, which is not included, and adds a nul character (works for multi-word inputs) Must pass gets the storage, usually an array of char

Example: The Argument Vector The argument vector is an array of strings that are gathered up when a C program is run at the command prompt The first string is the name of the command The remaining strings are the arguments, if any The argument vector and its length are optional formal parameters of the main function

Print the Command Line Arguments /* Prints contents of the argument vector (the name of the program and any command-line arguments). */ #include <stdio.h> int main(int argc, char *argv[]){ int i; for (i = 0; i < argc; i++) printf("Argument %d: %s\n", i, argv]); }

Opening Files for I/O Syntax: fopen(fileName, modeString) #include <stdio.h> int main(){ FILE *infile = fopen("test.asm", "r"); FILE *outfile = fopen("test.bin", "w"); if (infile == NULL) printf("The input file does not exist.\n"); else{ processFile(infile, outfile); fclose(infile); fclose(outfile); } Syntax: fopen(fileName, modeString)

Text File I/O Functions What it does char* fgets(char* array, int arraySize, FILE *infile) Returns NULL if end of file. Otherwise, loads the next line, including the newline and nul characters, into array. Note: there must be storage for array! int fputs(char* array, FILE *outfile) Returns EOF if the string cannot be written to outfile. Otherwise, writes the string to outfile. A newline is not automatically written. fprintf(FILE *outfile, char* formatString, arg1, . . ., argn) Works just like printf with the standard output file (the terminal)

Example: Create a Numbered Listing void processFile(FILE *infile, FILE *outfile){ int max = 80; int fieldWidth = 4; char line[max]; int lineNumber = 1; while (fgets(line, max, infile)){ fprintf(outfile, "%*d%s", fieldWidth, lineNumber, "> "); fputs(line, outfile); lineNumber++; } "%*d" allows a variable to be used as a field width for a datum The variable for the field width precedes the datum being formatted

The Standard I/O Files stdin names the standard input file, which is the keyboard stdout names the standard output file, which is the terminal screen Both variables are of type FILE*

Example: Print to File or Terminal int main(int argc, char *argv[]){ if (argc == 1) // no argument provided (?) return; FILE *infile = fopen(argv[1], "r"); if (infile == NULL){ printf("The input file does not exist in this directory\n"); } FILE *outfile; if (argc == 3) outfile = fopen(argv[1], "w"); // Using an output file else outfile = stdout; // Using the terminal processFile(infile, outfile); fclose(infile); if (outfile != stdout) fclose(outfile);

Pointers and Dynamic Storage For Monday Pointers and Dynamic Storage