22.10.2014 Views

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

Aprendendo a Programar Programando em Linguagem C - FSM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

char *Str1 = "Logica de Programacao", *Str2 = "grama", *p;<br />

p = strstr(Str1, Str2);<br />

if (p != NULL)<br />

printf("A \"ultima\" substring de %s que cont<strong>em</strong> %s e: %s.\n", Str1, Str2, p);<br />

else<br />

printf("%s nao esta contida <strong>em</strong> %s", Str2, Str1);<br />

}<br />

exibe na tela a afirmação:<br />

A "ultima" substring de Logica de Programacao que cont<strong>em</strong> grama e gramacao.<br />

h) Convertendo uma string <strong>em</strong> números<br />

Como ver<strong>em</strong>os <strong>em</strong> ex<strong>em</strong>plos a seguir, muitas vezes é preferível que um dado de entrada seja um vetor<br />

de caracteres, mesmo que a função necessite realizar operações mat<strong>em</strong>áticas com ele. A conversão de uma<br />

subcadeia de dígitos para os tipos int, long ou float, respectivamente, é feita através das funções<br />

int atoi(char *s);<br />

long atol(char *s);<br />

double atof(char *s);<br />

cujos protótipos estão no arquivo stdlib.h. Estas funções retornam o número (no formato respectivo)<br />

correspondente à primeira (da esquerda para direita) subcadeia de s que pode ser convertida , retornando 0<br />

(zero) se o primeiro caractere de s não for um dígito ou um dos caracteres + e – (se o primeiro caractere for<br />

+ ou -, para que haja alguma conversão o segundo deve ser um dígito).<br />

8.3 Ex<strong>em</strong>plos Parte VI<br />

1. A função a seguir exclui uma dada quantidade n de caracteres a partir de uma posição dada p. Para<br />

conseguir excluir os n caracteres, "traz<strong>em</strong>os" a substring formada pelos últimos caracteres que não serão<br />

excluídos mais o caractere nulo para a posição p. Naturalmente, se o número de caracteres a ser<strong>em</strong> excluídos<br />

for maior do que o disponível, todos os caracteres a partir de p serão excluídos. Isto é obtido através da<br />

função strncpy().<br />

#include <br />

#include <br />

void DeletaCaracteres(char *s, int n, int p)<br />

{<br />

int i, Comp;<br />

char *Aux;<br />

Comp = strlen(s);<br />

if (p + n

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!