Documente Academic
Documente Profesional
Documente Cultură
Observaie:
1. Terminatorul de ir: \0.
2. Terminatorul de ir permite testarea sfritului irului de caractere.
Citirea unui ir de caractere :
- caracter cu caracter ca la vector de intregi;
-
puts, printf .
Exemplu:
#include <stdio.h>
int main()
{
char nume[20];
char prenume[20];
printf("Introduceti numele :");
scanf("%s",nume);
fflush(stdin);
printf("Introduceti prenumele :");
scanf("%s",prenume);
fflush(stdin);
printf("\n%s %s\n",prenume, nume);
return 0;
}
#include <stdio.h>
int main()
{
int n = -1;
char ch;
char str[30];
printf("Introduceti caracterele sirului( 0 - terminare) :\n");
do {
fflush(stdin);
scanf("%c",&ch);
if(ch == '0') break;
n++;
str[n] = ch;
}while(1);
str[n+1] = '\0';
printf("S-a citit sirul : %s",str);
return 0;
}
int main()
{
char *const p="Acesta este un sir";
int n;
n=strlen(p);
printf("%d",n);
char tab[]="Acesta este un sir";
n=strlen(tab);
printf("%d",n);
n=strlen("Acesta este un sir");
printf("%d",n);
return 0;
}
int main()
{
char tab[]="Acest sir se copiaza";
char t[sizeof(tab)];
strcpy(t,tab);
puts(t);
char t1[100];
strcpy(t1,"Acest sir se copiaza");
puts(t1);
char *p="Acest sir se copiaza";
char t2[100];
char *q;
q=strcpy(t2,p);
puts(q);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char tab1[100]="Primul";
char tab2[]="si al doilea";
strcat(tab1," ");
strcat(tab1,tab2);
puts(tab1);
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char *sir1="ABC";
char *sir2="abc";
int i = -2;
int j = -2;
i=strcmp(sir1,sir2);
j=stricmp(sir1,sir2);
printf("strcmp(sir1,sir2) : %d\n",i);
printf("stricmp(sir1,sir2): %d\n",j);
return 0;
}
int main()
{
char sir[] = "Acesta este un sir";
char *pch;
printf ("Caracterul 's' in \"%s\"...\n",sir);
pch=strchr(sir,'s');
while (pch!=NULL)
{
printf ("%d\n",pch-sir+1);
pch=strchr(pch+1,'s');
}
return 0;
int main()
{
char sir[] = "Acesta este un sir";
Exerciii:
1. Pentru un ir de caractere citit de la tastatur, str, se cere:
- S se determine numrul de apariii a unui caracter n cadrul irului;
- S se tearg toate apariiile unui subir, str1, din cadrul irului;
- S se afieze numrul de vocale i de consoane din str ;
- S se verifice dac irul str este un palindrom.
2. Se consider dou iruri de caractere citite de la tastatur. S se scrie un program care
afiseaz toate cuvintele comune din cele dou iruri citite.
3. S se afieze unul sub altul, toate sufixele proprii ale unui cuvant citit de la tastatura
(sufixele unui cuvant sunt compuse din minim un caracter si maxim toate caracterele,
citite de la dreapta la stanga).
Exemplu : Pentru cuvntul limbaj, se va afia
j
aj
baj
mbaj,
imbaj
limbaj.
4. Se citesc de la mediul de intrare n cuvinte. S se scrie un program care ordoneaz
cuvintele citite:
- n funcie de lungimea acestora;
- alfabetic.
5. Se citte de la tastatur un ir de caractere care conine mai multe cuvinte separate
prin unul sau mai multe spaii. Se cere:
- s se afieze cuvintele irului care nu ncep i nu se terminc cu majuscul;
- s se afieze cuvinte irului rotite cu k caractere; k se va citit de la tastatur;
- pentru un caracater ch citit de la tastatur, s se sorteze cresctor cuvintele aflate
pe poziii pare n funcie de numrul de apariii ale caracterului ch; primul cuvnt
se consider cu indexul 0;
- s se corecteze i s se afieze cuvintele care conin greeli ; un cuvnt este
considerat greit dac acesta conine secvene de dou sau mai multe caractere
consecutive identice, iar corectarea se va realiza prin eliminarea surplusului de
caractere identice.
6. Scrieti un program care va prelucra un sir de caractere citit de la tastatura astfel:
Orice succesiune de doua sau mai multe vocale va fi inlocuita cu numele celui care scrie
programul.
Exemplu: amoocuuuiintuio ->ampopcpopntpop
int
int
int
int
int
Functie
islower(char
isupper(char
isalpha(char
isdigit(char
isspace(char
c)
c)
c)
c)
c)
1
1
1
1
1
daca
daca
daca
daca
daca
c
c
c
c
c
{
{
{
{
{
Valoare returnata
a,..z}
A,..Z}
a,..z}{ A,..Z}
0,..9}
, \n, \t,\r,\f,\v}
Valoare returnata
Copiaza sirul s in sirul
d( inclusive terminatorul
de sir); intoarce d
Copiaza n carcactere din s
in sirul d( completand cu
terminatorul de sir);
intoarce d
Concateneaza sirul s la
sirul d; intoarce d
Concateneaza cel mult n
carcatere din sirul s la
sirul d( completeaza cu
\0); intoarce d
Compara sirurile d si s:
-1 : d<s;
0 : d=s;
1 : d>s;
Compara sirurile d si s,
fara a face diferente inre
majuscule si minuscule
Compara cel mult n
caractere sirurile d si s(
strcmp)
Cauta carcaterul c in
sirul d; intoarce un
pointer la prima aparitie
a lui c in d sau NULL;
Cauta carcaterul c in
sirul d; intoarce un
pointer la ultima aparitie
a lui c in d sau NULL;
Intoarce un pointer la
prima aparitie a
subsirului s in d sau
NULL;
char* strlwr(char* s)
char* strupr(char* s)
char* strlwr(char* s)
Char *strdup(const char *d)