NISKE (stringovi) u C-u: podsećanje. 1. Primer programa koji uvodi niske karaktera terminisane nulom

Similar documents
by Pearson Education, Inc. All Rights Reserved.

Characters and Strings

C: How to Program. Week /May/28

Chapter 8 C Characters and Strings

1 Pointer Concepts. 1.1 Pointer Examples

Structured programming

Reading Assignment. Strings. K.N. King Chapter 13. K.N. King Sections 23.4, Supplementary reading. Harbison & Steele Chapter 12, 13, 14

C Characters and Strings

Chapter 8 - Characters and Strings

Chapter 8: Character & String. In this chapter, you ll learn about;

N v 1. Type generic string interfaces honor the const contract of application code ISO/IEC JTC 1/SC 22/WG14. August 20, 2016

ONE DIMENSIONAL ARRAYS

C strings. (Reek, Ch. 9) 1 CS 3090: Safety Critical Programming in C

CS107 Spring 2019, Lecture 4 C Strings

Strings. Arrays of characters. Pallab Dasgupta Professor, Dept. of Computer Sc & Engg INDIAN INSTITUTE OF TECHNOLOGY

C: Arrays, and strings. Department of Computer Science College of Engineering Boise State University. September 11, /16

Computers Programming Course 11. Iulian Năstac

UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET

Scientific Programming in C V. Strings

Computer Programming

namespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }

I PISMENI ZADATAK III6 I GRUPA IME I PREZIME

CS107, Lecture 4 C Strings

Iosif Ignat, Marius Joldoș Laboratory Guide 9. Character strings CHARACTER STRINGS

Chapter 8 Character Arrays and Strings

CSC209H Lecture 4. Dan Zingaro. January 28, 2015

8. Characters, Strings and Files

VHDLPrimeri Poglavlje5.doc

Outline. Computer Programming. Structure of a function. Functions. Function prototype. Structure of a function. Functions

Uvod u programiranje - vežbe. Kontrola toka izvršavanja programa

Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010

Contents. Preface. Introduction. Introduction to C Programming

Lecture 05 Pointers ctd..

Veliki računski zadaci mogu se razbiti u manje delove i time se omogućava ljudima da iskoriste ono što su neki drugi već uradili, umesto da počinju

b) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.

SYSC 2006 C Winter String Processing in C. D.L. Bailey, Systems and Computer Engineering, Carleton University

Algoritmi i strukture podataka 2. Čas, Uvod u C++

Chapter 5. Section 5.4 The Common String Library Functions. CS 50 Hathairat Rattanasook

Characters, Character Strings, and string-manipulation functions in C

C Strings. Abdelghani Bellaachia, CSCI 1121 Page: 1

Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.

CMPSC 311- Introduction to Systems Programming Module: Strings

x y = z Zadaci - procedure

CS 137 Part 6. ASCII, Characters, Strings and Unicode. November 3rd, 2017

Procedural Programming

Lecture 10 Arrays (2) and Strings. UniMAP SEM II - 11/12 DKT121 1

... ; ako je a n parno. ; ako je a n neparno

CSCI 6610: Intermediate Programming / C Chapter 12 Strings

SYSTEM AND LIBRARY CALLS. UNIX Programming 2015 Fall by Euiseong Seo

Introduction to string

Course organization. Course introduction ( Week 1)

CSC 2400: Computer Systems. Arrays and Strings in C

mith College Computer Science CSC270 Spring 2016 Circuits and Systems Lecture Notes, Week 11 Dominique Thiébaut

C: Pointers, Arrays, and strings. Department of Computer Science College of Engineering Boise State University. August 25, /36

Chapter 9 Strings. With this array declaration: char s[10];


C Programming Language Review and Dissection III

Computers Programming Course 10. Iulian Năstac

Using Character Arrays. What is a String? Using Character Arrays. Using Strings Life is simpler with strings. #include <stdio.

C mini reference. 5 Binary numbers 12

CSC 2400: Computer Systems. Arrays and Strings in C

CS167 Programming Assignment 1: Shell

CSC 270 Survey of Programming Languages. C-String Values

Built-in Functions for NTCAs.

Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi

Intermediate Programming, Spring 2017*

Programming in C. Session 7. Seema Sirpal Delhi University Computer Centre

Programiranje III razred

CSE2301. Functions. Functions and Compiler Directives

Computer Programming: Skills & Concepts (CP) Strings

Computers Programming Course 12. Iulian Năstac

CSCE150A. Introduction. Basics. String Library. Substrings. Line Scanning. Sorting. Command Line Arguments. Misc CSCE150A. Introduction.

Računarske osnove Interneta (SI3ROI, IR4ROI)

Computer Science & Engineering 150A Problem Solving Using Computers. Chapter 9. Strings. Notes. Notes. Notes. Lecture 07 - Strings

Computer Science & Engineering 150A Problem Solving Using Computers

Strings(2) CS 201 String. String Constants. Characters. Strings(1) Initializing and Declaring String. Debzani Deb

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes STUDENT NAME: STUDENT ID NUMBER:

I2204 ImperativeProgramming Semester: 1 Academic Year: 2018/2019 Credits: 5 Dr Antoun Yaacoub

Create a Program in C (Last Class)

String can be represented as a single-dimensional character type array. Declaration of strings

String Class in C++ When the above code is compiled and executed, it produces result something as follows: cin and strings

Appendices E through H are PDF documents posted online at the book s Companion Website (located at

C-String Library Functions

CS106L Handout #05 Fall 2007 October 3, C Strings

Učitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.

C Libraries. Bart Childs Complementary to the text(s)

For. 1) program ispis; {ispisuje brojeve od 1 do 5 jedan ispod drugog} uses wincrt; var s,i:integer; begin for i:=1 to 5do writeln(i); end.

School of Computer Science Algorithms & Programming. Fall Midterm Examination # 2 Wednesday, November 14, 2007.

Fundamental of Programming (C)

Programiranje 1. Školska 2006/2007 godina. Matematički fakultet, Beograd

A function is a named group of statements developed to solve a sub-problem and returns a value to other functions when it is called.

Procedural Programming & Fundamentals of Programming

Pointers, Arrays, and Strings. CS449 Spring 2016

var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.

C Programming. Unit 9. Manipulating Strings File Processing.

B.V. Patel Institute of Business Management, Computer & Information Technology, Uka Tarsadia University

,$5(0%(''(':25.%(1&+ $16,&'(9(/230(17722/6 EMBEDDED WORKBENCH ANSI C COMPILER C-SPY FOR NATIONAL SEMICONDUCTOR CORP. S &RPSDFW5,6& 70 &5

Overview. Concepts this lecture String constants Null-terminated array representation String library <strlib.h> String initializers Arrays of strings

ARRAYS(II Unit Part II)

Fundamentals of Programming

Transcription:

NISKE (stringovi) u C-u: podsećanje 1. Primer programa koji uvodi niske karaktera terminisane nulom #include <stdio.h> main() /* Poslednji bajt niske karaktera s se postavlja na '\0' tj. 0 char s[] = 'a', 'b', 'c', '\0' ; /* Kraci nacin da se postigne prethodno char t[] = "abc"; /* Ispis niske s karakter po karakter - I nacin for (i = 0; s[i]!= '\0'; i++) putchar(s[i]); putchar('\n'); /* Ispis niske s koristeci funkciju printf - II nacin printf("%s\n", s); /* Ispis niske t karakter po karakter-i nacin for (i = 0; t[i]!= '\0'; i++) putchar(t[i]); putchar('\n'); /* Ispis niske t koristeci funkciju printf - II nacin printf("%s\n", t); 2. /* strlen, strcpy, strcat, strcmp, strchr, strstr -manipulacija niskama karaktera Napisati C funkcije koje implementiraju funkcije iz biblioteke string.h i to: 1. funkciju string_length koja implementira funkciju strlen iz zaglavlja string.h 2. funkciju string_copy koja impementira funkciju strcpy iz string.h 3. funkciju string_concatenate koja implementira funkciju strcat iz string.h 4. funkciju string_char koja implementira funkciju strchr iz string.h 5. funkciju string_last_char koja pronalazi poslednju pojavu karaktera u nisci 6. funkciju string_string koja slicno funkciji strstr iz string.h proverava da li je neka niska podniska druge NCP koji ilustruje pozive ovih funkcija. #include <stdio.h> /* Izracunava duzinu stringa int string_length(char s[]) for (i = 0; s[i]; i++) ; return i; /* Kopira string src u string dest. Pretpostavlja da u dest ima dovoljno prostora. void string_copy(char dest[], char src[])

/*Kopira karakter po karakter,sve dok nije iskopiran karakter '\0' for (i = 0; (dest[i]=src[i])!= '\0'; i++) ; /* Uslov!= '\0' se, naravno, moze izostaviti : for (i = 0; dest[i]=src[i]; i++); /* Nadovezuje string t na kraj stringa s. Pretpostavlja da u s ima dovoljno prostora. void string_concatenate(char s[], char t[]) int i, j; /* Pronalazimo kraj stringa s for (i = 0; s[i]; i++); /* Vrsi se kopiranje, slicno funkciji string_copy, ali ne od pocetka niske s, vec od kraja niske s for (j = 0; s[i] = t[j]; j++, i++) ; /* Vrsi leksikografsko poredjenje dva stringa. Vraca : 0 - ukoliko su stringovi jednaki <0 - ukoliko je s leksikografski ispred t >0 - ukoliko je s leksikografski iza t int string_compare(char s[], char t[]) /* Petlja tece sve dok ne naidjemo na prvi razliciti karakter for (i = 0; s[i]==t[i]; i++) if (s[i] == '\0') return 0; /* Naisli smo na kraj oba stringa, a nismo nasli razliku /* s[i] i t[i] su prvi karakteri u kojima se niske razlikuju. Na osnovu njihovog odnosa (razlike ASCII vrednosti), odredjuje se odnos stringova < ili > ili == return s[i] - t[i]; /* Pronalazi prvu poziciju karaktera c u stringu s, odnosno -1 ukoliko s ne sadrzi c int string_char(char s[], char c) for (i = 0; s[i]; i++) if (s[i] == c) return i; /* NIKAKO else

/* Nije nadjeno /* Pronalazi poslednju poziciju karaktera c u stringu s, odnosno -1 ukoliko s ne sadrzi c int string_last_char(char s[], char c) /* Najpre pronalazimo kraj stringa s for (i = 0; s[i]; i++) ; /* Krecemo od kraja i trazimo c unazad for (i--; i>=0; i--) if (s[i] == c) return i; /* Nije nadjeno /* ILI drugi nacin bi bio koristeci string_length : for (i = string_length(s) - 1; i>0; i--) if (s[i] == c) return i; /* Proverava da li string str sadrzi string sub. Vraca poziciju na kojoj sub pocinje, odnosno -1 ukoliko ga nema int string_string(char str[], char sub[]) int i, j; /* Proveravamo da li sub pocinje na svakoj poziciji i for (i = 0; str[i]; i++) /* Poredimo sub sa str pocevsi od poziciji i sve dok ne naidjemo na razliku for (j = 0; str[i+j] == sub[j]; j++) /* Nismo naisli na razliku a ispitali smo sve karaktere niske sub if (sub[j+1]=='\0') return i; /* Nije nadjeno main() char s[100]; char t[] = "Zdravo"; char u[] = " svima"; string_copy(s, t); printf("%s\n", s);

string_concatenate(s, u); printf("%s\n", s); printf("%d\n",string_char("racunari", 'n')); printf("%d\n",string_last_char("racunari", 'a')); printf("%d\n",string_string("racunari", "rac")); printf("%d\n",string_string("racunari", "ari")); printf("%d\n",string_string("racunari", "cun")); printf("%d\n",string_string("racunari", "cna")); Izlaz: Zdravo Zdravo svima 4 5 0 5 2-1 Zaglavlje string.h This header file defines several functions to manipulate C strings and arrays. Functions Copying: memcpy Copy block of memory (function ) memmove Move block of memory (function ) strcpy Copy string (function ) strncpy Copy characters from string (function ) Concatenation: strcat Concatenate strings (function ) strncat Append characters from string (function )

Comparison: memcmp Compare two blocks of memory (function ) strcmp Compare two strings (function ) strcoll Compare two strings using locale (function ) strncmp Compare characters of two strings (function ) strxfrm Transform string using locale (function ) Searching: memchr Locate character in block of memory (function ) strchr Locate first occurrence of character in string (function ) strcspn Get span until character in string (function ) strpbrk Locate characters in string (function ) strrchr Locate last occurrence of character in string (function ) strspn Get span of character set in string (function ) strstr Locate substring (function ) strtok Split string into tokens (function ) Other: memset Fill block of memory (function ) strerror Get pointer to error message string (function ) strlen Get string length (function ) Macros NULL Null pointer (macro ) Types size_t Unsigned integral type (type ) 3. Napisati funkciju void zameni(char s[]) koja u niski s maksimalne duzine 20 karaktera zamenjuje svako pojavljivanje slova a slovom b.

Na primer: niska dan se zamenjuje niskom dbn U glavnom programu ucitati nisku sa ulaza i testirati funkciju. 4. Napisati funkciju void zameni3(char s[], char ns[]) koja zamenjuje svaki karakter niske s sa 3 naredna karaktera po abededi i tako dobijenu nisku cuva u ns. Na primer: nisku ANA treba modifikovati u BCDOPQBCD Napisati potom program koji sa ulaza ucitava 5 niski maksimalne duzine 20 karaktera i ispisuje odgovarajuce modifikacije. 5. Napisati program kojim se sa ulaza ucitava ceo broj k (k<=10) i niska s maksimalne duzine 20 karaktera, a zatim se ispisuje nova niska formirana nadovezivanje polazne niske n puta. Na primer: za unos 4 i ana izlaz je ana_ana_ana_ana 6. Napisati funkciju int palindrom (char s[]) kojom se proverava da li je zadata niska s palindrom (za nisku kazemo da je palindrom ako se isto cita i sa leve i sa desne strane). Na primer: niska anavolimilovana je palindrom U glavnom programu ucitati nisku i testirati rad funkcije. 7. Napisati funkciju int anagrami (char s1[], char s2[]) kojom se proverava da li su dve zadate niske anagrami (za dve niske kazemo da su anagrami ako se od slova prve niske moze formirati druga niska). Na primer: ortoped i torpedo U glavnom programu ucitati dve niske maksimalne duzine 20 i testirati rad funkcije.