Você está na página 1de 31

Resumo linguagem C

// - comentrios // Este um comentrio em C Ou /* este tambm um comentrio em C */

Tipos de dados em C Tipo Espao Escala Char 1 byte -128 a +127 Int 2 bytes -32768 a +32767 Float 4 bytes 3.4e-38 a 3.4e+38 Double 8 bytes 1.7e-308 a 1.7e+308 Void Nenhum nenhuma Obs.: utilizando-se a clausula unsigned antes de declarar o tipo de varivel , dobramos o valor desta,pois declaramos que s sero aceitos valores positivos para a varivel. Unsigned int tem a a escala de 0 a 255,por exemplo. Como declarar: #include<stdio.h> #include<string.h> int valor ; char tecla ; char tecla[50] // Aqui temos uma varivel do tipo string,utilizando-se a biblioteca string.h int main() { Bloco de comandos }

Saida formatada de dados

printf(\n \a \t Teste ) ; \a \b \f \n \r \t \ \ \\ Entrada formatada de dados scanf(%d,&nome_da_variavel) ; gets(nome_da_variavel) ; // usado no tipo string com sua respectiva biblioteca <string.h> %c %o , %d , %x %u %ld %f , %lf %s %% Um nico caracter Um numero octal,um numero decimal ,um numero hexadecimal Um numero inteiro em base decimal sem sinal Um numero inteiro longo em base decimal Um numero real de preciso simples ou dupla Uma cadeia de caracteres Um nico sinal de porcentagem Soa alarme no computador O cursor retrocede uma coluna Alimenta pgina na impressora O cursor avana uma nova linha O cursor retrocede para a primeira coluna da linha O cursor avana para a prxima marca da tabulao Exibe uma nica aspa Exibe um nico apostrofo Exibe uma barra invertida

Para utilizarmos o tipo char podemos atribuir o valor varivel utilizando-se as funes : #include<conio.h> //Biblioteca de comandos que abriga a funo getche() nome_variavel = getche() ; //mostra a tecla pressionada na tela nome_variavel = getch() ; //no mostra a tecla pressionada na tela nome_variavel = getchar() ;//mostra a sequencia digitada,porem s aceita o primeiro caracter,depois de pressionada a tecla <enter>

Operadores matemticos Varivel++ ou variavel-Incrementa ou decrementa 1 ao valor da varivel , ps incremento,ou seja o valor ser atualizado na varivel na prxima passada do lao (loop) Incrementa ou decrementa 1 ao valor da varivel,pr incremento,ou seja o valor da varivel ser imediatamente atualizado Operador de adio Y=x+z ; Operador de subtracao Y=x-z ; * Operador de multiplicao Y=x*z ; / Operador de diviso inteira Y=x/z ; % Resto da diviso de dois nmeros inteiros Y=x%z ;

++varivel ou variavel

Algumas convenes utilizadas em C: i+=2 o mesmo que i = i+2 ; x*=y+1 o mesmo que x = x*(y+1) ; t/ = 2.5 ; o mesmo que t=t/25 ; p%=5; o mesmo que p=p%5 ;

Operadores relacionais X==y X!=y X<y x>y X<=y x>=y !x Verdade se x for igual a y Verdade se x for diferente de y Verdade se x for menor que y Verdade se x for maior que y Verdade se x for menor ou igual a y Verdade se x for maior ou igual a y Verdade se e s se x for falso Operador not X&&y Verdade se e s se x e y forem verdade Operador AND X || y Verdade se e s se x ou y for verdade Operador OR Obs.:em C no existe o tipo booleano , porem o C interpreta os valores lgicos da seguinte forma:0 falso , qualquer outro valor que no seja 0 ser interpretado como verdadeiro.

Comandos de deciso if (varivel_a == valor) { bloco de comandos } else { bloco de comandos };

while ((a<=10) || (b<=10)) { bloco de comandos }

do { bloco de comandos } while(condio) ;

Lao for (varivel=valor;condio;varivel++) { } for (varivel=0;varivel<=10;varivel--) { bloco de comandos }

TRABALHANDO COM VETORES DO TIPO STRING


#include<stdio.h> #include<conio.c> #include<conio.h> int main() { char nome[40][10] ; char tecla ; int indice ; tecla='s' ; indice=0 ;

while(tecla!='n' && indice<=5) { clrscr() ; printf("\n Forneca o nome do indice %d:",indice) ; gets(nome[indice]) ; printf("\n Deseja continuar (s)im ou (n)ao:") ; tecla=getche() ; printf("\n") ; indice++; } clrscr() ;

for (indice=0;indice<=5;indice++) { printf("\n%s",nome[indice]) ;

if(strcmp(nome[indice],"alexandre")==0)

{ printf("\nFoi digitado alexandre!") ; }

getche() ;

Operador condicional

(?)

condio ? expressao1 : expressao2 ; Funciona da seguinte forma: 1-avalia a condio 2-se for verdadeira,o resultado final o valor da expresso1 3-se for falsa , o resultado final o valor da expresso2 variavel_a>variavel_b ? (resultado=variavel_a) : (resultado=variavel_b) ; se a for maior que b , resultado=varivel_a seno resultado=varivel_b ;

Uso de switch case #include<stdio.h> #include<conio.h> //Uso de decises multiplas com o comando switch int main() { char tecla_pressionada ; do { printf ("\n Pressione uma tecla entre a e d:") ; tecla_pressionada=getche() ; switch(tecla_pressionada) { case 'a' : { printf("\n Pressionou A!") ; printf("\n Pressionou A mesmo !") ; break ; } case 'b' : printf("\n Pressionou B!") ; break ;

case 'c' : printf("\n Pressionou C!") ; break ;

default : printf("\n Nao pressionou nenhuuma das opcoes") ; break ; }

} while(tecla_pressionada != 's') ;

printf("\n Abortagem de programa executada conforme solicitacao...") ; printf("\n Pressione qualquer tecla para terminar!") ; getche() ; }

Criao de novos tipos em C (Comando Struct)

//Criao do novo tipo de variavel struct tcadastro { char nome[50] ; int escolaridade ; char sexo ; }; //Declarao de vetor com o novo tipo de variavel struct tcadastro cadastro[300] ;

cadastro[indice].nome ; cadastro[ndice].escolaridade; cadastro[ndice].sexo;

OBSERVAO QUANTO AO ESCOPO DAS VARIAVEIS E SUAS RESPECTIVAS DECLARAES CLASSE LOCAL GLOBAL STATICA PALAVRA AUTO EXTERN STATIC ESCOPO FUNO PROGRAMA FUNO DURAO FUNO PROGRAMA PROGRAMA EXEMPLO AUTO INT N; EXTERN INT N; STATIC INT N;

UMA VARIAVEL ESTATICA TEM O ESCOPO DE UMA LOCAL E A DURAO DE UMA GLOBAL.ISSO QUER DIZER QUE ESSAS VARIAVEIS S SO ACESSIVEIS FUNO QUE AS DECLARA,MAS EXISTEM DURANTE TODA A EXECUO DO PROGRAMA.VARIAVEIS ESTATICAS TEM A VANTAGEM DE SEREM PRIVATIVAS E ,AO MESMO TEMPO,DE MANTEREM SEU VALOR ENTRE UMA CHAMADA E OUTRA DA FUNO.A PALAVRA STATIC DEVE PREFIXAR A DECLARAO DE VARIAVEIS ESTATICAS.

VETORES EM C //Vetores do tipo inteiro com indices pr inicializados #include<stdio.h> #include<conio.c> #include<conio.h> int main() { static int indice ; static int vetor[6] = {0,10,20,30,40,50} ; for (indice=1;indice<=5;indice++) { printf("\n %d-",vetor[indice]) ; } getche() ; }

Matrizes

Matrizes bidimensionais Matrizes de strings Matrizes multidimensionais Inicializao Inicializao sem especificao de tamanho

Matrizes bidimensionais J vimos como declarar matrizes unidimensionais (vetores). Vamos tratar agora de matrizes bidimensionais. A forma geral da declarao de uma matriz bidimensional muito parecida com a declarao de um vetor: tipo_da_varivel nome_da_varivel [altura][largura]; muito importante ressaltar que, nesta estrutura, o ndice da esquerda indexa as linhas e o da direita indexa as colunas. Quando vamos preencher ou ler uma matriz no C o ndice mais direita varia mais rapidamente que o ndice esquerda. Mais uma vez bom lembrar que, na linguagem C, os ndices variam de zero ao valor declarado, menos um; mas o C no vai verificar isto para o usurio. Manter os ndices na faixa permitida tarefa do programador. Abaixo damos um exemplo do uso de uma matriz:

#include <stdio.h> int main () { int mtrx [20][10]; int i,j,count; count=1; for (i=0;i<20;i++) for (j=0;j<10;j++) { mtrx[i][j]=count; count++; printf("\nLinha:%d Col:%d INT:%d",i,j,mtrx[i][j]); } return(0); }

No exemplo acima, a matriz mtrx preenchida, sequencialmente por linhas, com os nmeros de 1 a 200. Voc deve entender o funcionamento do programa acima antes de prosseguir.

Matrizes de strings Matrizes de strings so matrizes bidimensionais. Imagine uma string. Ela um vetor. Se fizermos um vetor de strings estaremos fazendo uma lista de vetores. Esta estrutura uma

matriz bidimensional de chars. Podemos ver a forma geral de uma matriz de strings como sendo: char nome_da_varivel [num_de_strings][compr_das_strings]; A surge a pergunta: como acessar uma string individual? Fcil. s usar apenas o primeiro ndice. Ento, para acessar uma determinada string faa: nome_da_varivel [ndice] Aqui est um exemplo de um programa que l 5 strings e as exibe na tela:

#include <stdio.h> int main () { char strings [5][100]; int count; for (count=0;count<5;count++) { printf ("\n\nDigite uma string: "); gets (strings[count]); } printf ("\n\n\nAs strings que voce digitou foram:\n\n"); for (count=0;count<5;count++) printf ("%s\n",strings[count]); return(0); }

Matrizes multidimensionais O uso de matrizes multidimensionais na linguagem C simples. Sua forma geral : tipo_da_varivel nome_da_varivel [tam1][tam2] ... [tamN]; Uma matriz N-dimensional funciona basicamente como outros tipos de matrizes. Basta lembrar que o ndice que varia mais rapidamente o ndice mais direita.

Inicializao Podemos inicializar matrizes, assim como podemos inicializar variveis. A forma geral de uma matriz como inicializao : tipo_da_varivel nome_da_varivel [tam1][tam2] ... [tamN] = {lista_de_valores}; A lista de valores composta por valores (do mesmo tipo da varivel) separados por vrgula. Os valores devem ser dados na ordem em que sero colocados na matriz. Abaixo vemos alguns exemplos de inicializaes de matrizes:

float vect [6] = { 1.3, 4.5, 2.7, 4.1, 0.0, 100.1 }; int matrx [3][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; char str [10] = { 'J', 'o', 'a', 'o', '\0' }; char str [10] = "Joao"; char str_vect [3][10] = { "Joao", "Maria", "Jose" };

O primeiro demonstra inicializao de vetores. O segundo exemplo demonstra a inicializao de matrizes multidimensionais, onde matrx est sendo inicializada com 1, 2, 3 e 4 em sua primeira linha, 5, 6, 7 e 8 na segunda linha e 9, 10, 11 e 12 na ltima linha. No terceiro exemplo vemos como inicializar uma string e, no quarto exemplo, um modo mais compacto de inicializar uma string. O quinto exemplo combina as duas tcnicas para inicializar um vetor de strings. Repare que devemos incluir o ; no final da inicializao.

Inicializao sem especificao de tamanho Podemos, em alguns casos, inicializar matrizes das quais no sabemos o tamanho a priori. O compilador C vai, neste caso verificar o tamanho do que voc declarou e considerar como sendo o tamanho da matriz. Isto ocorre na hora da compilao e no poder mais ser mudado durante o programa, sendo muito til, por exemplo, quando vamos inicializar uma string e no queremos contar quantos caracteres sero necessrios. Alguns exemplos:
char mess [] = "Linguagem C: flexibilidade e poder."; int matrx [][2] = { 1,2,2,4,3,6,4,8,5,10 };

No primeiro exemplo, a string mess ter tamanho 36. Repare que o artifcio para realizar a inicializao sem especificao de tamanho no especificar o tamanho! No segundo exemplo o valor no especificado ser 5.

Funes teis

funo kbhit retorna 0 se o usurio no est precionando nenhuma tecla. Caso contrrio, retorna um valor diferente de 0. Exemplo:
code:

#include <stdio.h> #include <conio.h> void main(void) { printf("Aguardando tecla...%c", '\n'); while (kbhit()==0) { } printf("Tecla precionada! At logo!%c", '\n'); return; }

toupper() ; - transforma a varivel em maisculo #include<ctype.h> Resposta=toupper(getch()) ; tolower();-transforma o character em minuscule Resposta=tolower(getch()) ;

clrscr(); limpa a tela

gotoxy(coluna,linha) ; // <conio.h> posiciona o cursor na tela ;

rand() % valor ;

rand() % 26 ; - gera um valor randmico entre 0 e 26 , utilize <stdlib.h>

textcolor(cor) ; //<conio.h> utilize cprintf(texto) ; textbackground(cor);//para cor de fundo


The following table lists the allowable colors (as symbolic constants) and their numeric values: BLACK BLUE GREEN CYAN RED MAGENTA BROWN LIGHTGRAY DARKGRAY LIGHTBLUE LIGHTGREEN LIGHTCYAN LIGHTRED LIGHTMAGENTA YELLOW WHITE BLINK 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 128

You can make the characters blink by adding 128 to the foreground color. The predefined constant BLINK exists for this purpose. For example: textcolor(CYAN + BLINK);

codigo ascii - deste quadrado ao lado 219 utilize para formar as bordas da tela ou algo parecido printf(%c,219) ;

Para apresentao de nmeros decimais de forma formatada : printf("\nValor A - Valor B=%.2f",subtracao(valor_a,valor_b)) ;

onde %.2f o 2 significa quantas casas decimais aps a virgula sero mostradas

As funes gets() e puts()

Usando gets() possvel inserir caracteres pelo teclado at que o Enter seja pressionado. No final da string colocado um terminador nulo e ento a funo retorna.

A funo puts() pode receber os cdigos de barra invertida apresentados na tabela 2 neste artigo e considerada muito mais rpida do que o printf(). O nico problema que puts() trabalha apenas com string de caracteres enquanto que o printf() trabalha com todos os tipos de dados.

Matrizes bidimensionais int matriz[5][5] ; int linha,coluna ;

for (linha=0;linha<=5;linha++) { for(coluna=0;coluna<=5;coluna++) { gotoxy(1,coluna+1) ; textcolor(randomico()) ; textbackground(randomico()) ; cprintf("\n\rForneca o valor da linha %d,coluna %d:",linha,coluna) ; scanf("%d",&matriz[linha][coluna]) ;

6. strings
6.1 Determinando o tamanho de uma string
Para determinar o tamanho de uma string use a funo strlen( ). Esta funo faz parte do arquivo de cabealho string.h. Sua sintaxe : strlen(string) Exemplo:
/* Determinando o tamanho de uma string usando * a funo strlen() */ #include <stdio.h> #include <string.h> int main() { char string[20]; printf("\n"); printf("Determinando o tamanho de uma string\n"); printf("------------------------------------\n"); printf("\n"); printf("Digite a string :"); scanf("%s",&string); printf("\n"); printf("A string tem %d carateres.\n\n",strlen(string)); return(0);

6.2 Copiando uma string em outra


Para copiar uma string em outra use a funo strcpy( ). Esta funo faz parte do arquivo de cabealho string.h. Sua sintaxe : strcpy(destino, origem) Exemplo:
/* Copiando uma string em outra usando a * funo strcpy() */ #include <stdio.h> #include <string.h> int main() { char string1[10], string2[10]; printf("\n"); printf("Copiando uma string em outra\n");

printf("----------------------------\n"); printf("\n"); printf("Digite string1 :"); scanf("%s",&string1); printf("\n"); printf("string1 = %s\n",string1); printf("string2 = %s\n",strcpy(string2,string1)); return(0); }

Na prtica, todo contedo de string2 substitudo por string1.

6.3 Unindo duas strings


Para unir duas strings use a funo strcat( ). Esta funo faz parte do arquivo de cabealho string.h. Sua sintaxe : strcat(destino, origem) Exemplo:
/* Unindo duas strings usando a * funo strcat() */ #include <stdio.h> #include <string.h> int main() { char string1[100], string2[10]; printf("\n"); printf("Unindo duas strings\n"); printf("-------------------\n"); printf("\n"); printf("Digite string1 :"); scanf("%s",&string1); printf("\n"); printf("Digite string2 :"); scanf("%s",&string2); printf("\n"); printf("Unindo string1 a string2 : %s\n\n",strcat(string2,string1)); return(0); }

6.4 Anexando caracteres de uma string em outra


Para anexar caracteres de uma string em outra use a funo strncat( ). Esta funo faz parte do arquivo de cabealho string.h. Sua sintaxe : strncat(destino, origem, nr_caracteres) Exemplo:
/* Anexando caracteres de uma string * em outra usando a funo strncat()*/

#include <stdio.h> #include <string.h> int main() { char string1[20],string2[6]="aeiou"; printf("\n"); printf("Anexando caracteres de uma string em outra\n"); printf("------------------------------------------\n"); printf("Entre com string1 :"); scanf("%s",&string1); printf("\n"); printf("string2 = %s\n\n",string2); printf("string1 + 3 caracteres de string 2 = %s\n",strncat(string1,string2,3)); printf("\n"); return(0); }

6.5 Funo que determina se duas strings so iguais


int streql(char *str1, char *str2) { while((*str1 == *str2) && (*str1)) { str1++; str2++; } return((*str1 == NULL) && (*str2 == NULL)); }

6.6 Convertendo uma string para maisculas


Para converter uma string para maisculas use a funo strupr( ). Esta funo faz parte do arquivo de cabealho string.h. Sua sintaxe : strupr(string) Exemplo:
/* Convertendo uma string em maisculas * usando a funo strupr() */ #include <stdio.h> #include <string.h> int main() { char string[20]; printf("\n"); printf("Convertendo uma string para maisculas\n"); printf("------------------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n");

printf("string digitada : %s\n",string); printf("\n"); printf("Convertendo para maisculas : %s\n",strupr(string)); return(0); }

6.7 Convertendo uma string para minsculas


Para converter uma string para minsculas use a funo strlwr( ). Esta funo faz parte do arquivo de cabealho string.h. Sua sintaxe : strlwr(string) Exemplo:
/* Convertendo uma string em minsculas * usando a funo strlwr() */ #include <stdio.h> #include <string.h> int main() { char string[20]; printf("\n"); printf("Convertendo uma string para minsculas\n"); printf("------------------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("string digitada : %s\n",string); printf("\n"); printf("Convertendo para minsculas : %s\n",strlwr(string)); return(0);

6.8 Localizando a primeira ocorrncia de um caractere numa string


Para isso use a funo strchr( ). Ela faz parte do arquivo de cabealho string.h. Sua sintaxe : strchr(string, caracter) Este funo retorna um ponteiro para a primeira ocorrncia de "caracter". Caso "caracter" no seja encontrado, ela retornar um ponteiro para o caractere NULL que marca o final da string. Exemplo:
/* Localizando o primeiro caracter numa string * usando a funo strchr()*/ #include <stdio.h> #include <string.h>

int main() { char string[30] = "Teste da funo strchr()."; char *ptr; printf("\n%s\n",string); ptr = strchr(string, 's'); if (*ptr) { printf("\n"); printf("A primeira ocorrncia de s na posio %d\n",ptr string); } else printf("Caractere no encontrado.\n"); } return(0);

6.9 Localizando a ltima ocorrncia de um caractere numa string


Para isso use a funo strrchr( ). Ela faz parte do arquivo de cabealho string.h. Sua sintaxe : strrchr(string, caracter) Este funo retorna um ponteiro para a ltima ocorrncia de "caracter". Caso "caracter" no seja encontrado, ela retornar um ponteiro para o caractere NULL que marca o final da string. Exemplo:
/* Localizando o ltimo caracter numa string * usando a funo strrchr()*/ #include <stdio.h> #include <string.h> int main() { char string[30] = "Teste da funo strrchr()."; char *ptr; printf("\n%s\n",string); ptr = strrchr(string, 's'); if (*ptr) { printf("\n"); printf("A ltima ocorrncia de s na posio %d\n",ptr - string); } else printf("Caractere no encontrado.\n"); } return(0);

6.10 Funo que conta o nmero de ocorrncias de um caractere numa string


int contachar(char string[], char letra) { int contador, tamanho, ocorrencia = 0; tamanho = strlen(string); for(contador=1;contador <= tamanho;contador++) if(string[contador] == letra) ocorrencia++; return(ocorrencia); }

Abaixo segue um exemplo com a utilizao da funo contachar(). O exemplo considera que ela faz parte do arquivo de cabealho <samfunc.h>:
#include <stdio.h> #include <string.h> #include <samfunc.h> int main() { char *string[20]; char letra[2]; int nr; printf("Testando a funo contachar()\n"); printf("---------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a letra :"); scanf("%s",&letra); nr = contachar(string,letra[0]); printf("\n"); printf("Contando o nmero de ocorrncias : %d\n",nr); return(0); }

6.11 Invertendo uma string utilizando a funo strrev( )


Para inverter o contedo de uma string use a funo strrev( ). Ela faz parte do arquivo de cabaalho string.h. Sua sintaxe : strrev(string) Exemplo:
/* Invertendo uma string usando a * funo strrev() */ #include <stdio.h> #include <string.h> int main() { char string[20]; printf("\n"); printf("Invertendo uma string\n");

printf("---------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Invertendo ==> %s",strrev(string)); return(0);

6.12 Substituindo os caracteres da string por um nico caracter


Para substituir todos os caracteres da string pelo mesmo caracter use a funo strset( ). Ela faz parte do arquivo de cabealho string.h. Sua sintaxe : strset(string,caracter) Exemplo:
/* Substituindo todos os caracteres da string * pelo mesmo caracter usando a funo strset() */ #include <stdio.h> #include <string.h> int main() { char string[20]; char caracter[2]; printf("\n"); printf("Substituindo os caracteres da string\n"); printf("------------------------------------\n"); printf("\n"); printf("Digite a string :"); scanf("%s",&string); printf("\n"); printf("Caractere :"); scanf("%s",&caracter); printf("\n"); printf("Substituindo ==> %s",strset(string,caracter[0])); return(0); }

6.13 Comparando duas strings


Para comparar duas strings use a funo strcmp( ). Ela faz parte do arquivo de cabealho string.h. Sua sintaxe : strcmp(string1,string2) Se as strings forem iguais a funo retorna zero, se string1 for maior a funo retorna um valor menor que zero e se string2 for maior a funo retorna um valor maior que zero. Exemplo:
/* Comparando duas strings com a funo strcmp() */

#include <stdio.h> #include <string.h> int main() { char string1[20],string2[20]; int retorno; printf("\n"); printf("Comparando duas strings\n"); printf("-----------------------\n"); printf("\n"); printf("Entre com a primeira string :"); scanf("%s",&string1); printf("\n"); printf("Entre com a segunda string :"); scanf("%s",&string2); printf("\n"); retorno = strcmp(string1,string2); if(retorno == 0) printf("As strings so iguais.\n"); else if(retorno < 0) printf("A string1 , maior.\n"); else printf("A string2 , maior.\n"); return(0); }

OBSERVAES: 1. A funo strcmp( ) possui uma variante, a funo strncmp( ) que compara os n primeiros caracteres de duas strings. Sua sintaxe : strncmp(string1,string2,nr_caracteres) 2. Existem ainda as funes stricmp( ) e strncmpi( ) que comparam duas strings sem considerar a caixa das letras (maisculas ou minsculas).

6.14 Convertendo strings em nmeros


Para converter strings em nmeros utilize as funes abaixo: FUNO atof(string) atoi(string) atol(string) CONVERTE STRINGS EM float int long int

strtod(string) double strtol(string) long

Estas funes fazem parte do arquivo de cabealho stdlib.h Exemplo:


/* Convertendo strings em nmeros */ #include <stdio.h> #include <stdlib.h> int main() { char string1[20],string2[20]; printf("\n"); printf("Convertendo strings em nmeros\n"); printf("------------------------------\n"); printf("\n"); printf("Entre com a primeira string :"); scanf("%s",&string1); printf("\n"); printf("Entre com a segunda string :"); scanf("%s",&string2); printf("\n"); printf("string1 + string2 = %f",atof(string1) + atof(string2)); return(0); }

6.15 Duplicando uma string


Para duplicar uma string use a funo strdup( ). Ela est no arquivo de cabealho string.h. Sua sintaxe : *strdup(string) Exemplo:
/* Duplicando uma string */ #include <stdio.h> #include <string.h> int main() { char string[20]; char *copia; printf("\n"); printf("Duplicando uma string\n"); printf("---------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); copia = strdup(string); printf("string ==> %s\n",string); printf("cpia ==> %s\n",copia); return(0);

6.16 Localizando uma substring dentro da string


Para localizar uma substring dentro da string use a funo strstr( ). Ela pertence ao arquivo de cabealho string.h e sua sintaxe : strstr(string,substring) Se a substring existir dentro da string, a funo retornar um ponteiro para a primeira letra da substring, seno retornar NULL. Exemplo:
/* Localizando uma substring dentro de uma string */ #include <stdio.h> #include <string.h> int main() { char string[20],substring[20]; char *extrai; int tamanho; printf("\n"); printf("Localizando uma substring dentro da string\n"); printf("------------------------------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a substring :"); scanf("%s",&substring); tamanho = strlen(substring); extrai = strstr(string,substring); printf("\n"); if(extrai) { printf("A string contm a substring.\n"); printf("A substring comea na posio %d.\n",extrai-string); printf("A substring tem %d caracteres.\n",tamanho); } else printf("A string no contm a substring.\n"); } return(0);

6.17 Funo que remove uma substring de dentro de uma string


#include <stdio.h> #include <string.h> char *sstr(char *string, char *substring) { char *extrai; int tamanho,contador;

tamanho = strlen(substring); extrai = strstr(string,substring); if(extrai) { for(contador = 0;contador < tamanho; contador++) extrai[contador] = string[(extrai - string) + contador]; extrai[contador] = NULL; return(extrai); } else return(" ");

int main() { char string[20],substring[20]; printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a substring :"); scanf("%s",&substring); printf("\n"); printf("substring ==> %s\n",sstr(string,substring)); } return(0);

6.18 Funo que substitui uma subtring por outra


#include <stdio.h> #include <string.h> char *subs_str(char *string, char *substring, char *nova) { char *extrai; int tamanho1,tamanho2,contador; tamanho1 = strlen(substring); tamanho2 = strlen(nova); if((tamanho1 > tamanho2) || (tamanho2 > tamanho1)) return(" "); else { extrai = strstr(string,substring); if(extrai) { for(contador = 0;contador < tamanho1; contador++) string[(extrai - string) + contador] = nova[contador]; return(string); } else return(" "); } }

int main() { char string[20],substring[20],nova[20]; printf("\n"); printf("Entre com a string :"); scanf("%s",&string); printf("\n"); printf("Entre com a substring :"); scanf("%s",&substring); printf("\n"); printf("Entre com a nova substring :"); scanf("%s",&nova); printf("\n"); printf("nova string ==> %s\n",subs_str(string,substring,nova)); return(0); }

6.19 Invertendo uma string sem o uso da funo strrev( )


/* Invertendo uma string */ #include <stdio.h> #include <string.h> int main() { char string[100],invertida[100]; char *caracter; int tamanho,contador; printf("\n"); printf("Invertendo uma string\n"); printf("---------------------\n"); printf("\n"); printf("Entre com a string :"); scanf("%s",&string); tamanho = strlen(string); contador = tamanho; caracter = &string; while(*caracter) { invertida[(contador - 1)] = *caracter; *(caracter++); contador--; } invertida[tamanho] = NULL; printf("\n"); printf("Invertendo ==> %s\n\n",invertida); return(0); }

[ Voltar ] [ ndice ] [ Avanar ]

Você também pode gostar