Engenharia de software
Por: CarolineRezende6 • 17/9/2016 • Pesquisas Acadêmicas • 12.353 Palavras (50 Páginas) • 371 Visualizações
Lista de Exercícios 1 – Strings e ponteiros.
Descrição:
- Escrever função para obter o tamanho de uma string, usando vetor. Protótipo: int mystrlen (char s[]);
Solução:
Percorrer toda string com laço for, até encontrar o caracter nulo, e retornar a variável de controle do laço.
Código Fonte:
#include
int mystrlen(char s[]) {
int i;
for (i = 0 ; s[i] != '\0' ; i++);
return i;
}
int main() {
char str[100];
scanf(“%s”, str);
printf("%d", mystrlen(str));
return 0;
}
Saídas e testes:
Entradas: LinguagemC, abc.
Saídas:
[pic 1]
Conclusões:
Resultados conforme esperado.
Descrição:
- Escrever função para obter o tamanho de uma string, usando, internamente ,a forma de ponteiro. Protótipo: int mystrlen (char s[]);
Solução:
Percorrer toda string com laço while, até encontrar o caracter nulo, e retornar a diferença entre as posições de início e fim da string;
Código Fonte:
#include
int mystrlen(char s[]) {
char *ps;
ps = s;
while (*ps) {
ps++;
}
return (ps-s);
}
int main() {
char str[100];
scanf(“%s”, str);
printf("%d", mystrlen(str));
return 0;
}
Saídas e testes:
Entradas: LinguagemC, abc.
Saídas:
[pic 2]
Conclusões:
Resultados conforme esperado.
Descrição:
- Escrever função int mystrlen (char *string) que obtem o tamanho de uma string usando ponteiro.
Solução:
Percorrer toda string com laço while incrementando uma variavel de controle e o ponteiro, até encontrar o caracter nulo, e retornar a variável de controle.
Código Fonte:
#include
int mystrlen(char *string) {
int count = 0;
while(*string) {
count++;
string++;
}
return count;
}
int main() {
char str[100];
scanf("%s", str);
printf("%d", mystrlen(str));
return 0;
}
Saídas e testes:
Entradas: LinguagemC, abc.
Saídas:
[pic 3]
Conclusões:
Resultados conforme esperado.
Descrição:
- Escrever função void print_string (char *string), que imprime uma string dada.
Solução:
Imprimir o cada caracter da string até encontrar o caracter nulo.
Código Fonte:
#include
void print_string(char *string) {
while(*string) {
putchar(*string++);
}
}
int main() {
char str[100];
scanf("%s", str);
print_string(str);
return 0;
}
Saídas e testes:
Entradas: LinguagemC, abc.
Saídas:
[pic 4]
Conclusões:
Resultados conforme esperado.
Descrição:
- Escrever função void mystrcpy (char s[], char t[]), que copia uma string t para s, usando vetores.
Solução:
Usar um laço while para copiar o conteúdo da segunda string para a primeira, até que o caracter copiado seja o caracter nulo.
Código Fonte:
#include
void mystrcpy(char s[], char t[]) {
int i = 0;
while ((s[i] = t[i]) != '\0') {
i++;
}
}
int main() {
char str1[] = "abc";
char str2[] = "LinguagemC";
printf("str1 antes da copia = %s", str1);
printf("str2 antes da copia = %s", str2);
mystrcpy(str1, str2);
printf("str1 depois da copia = %s", str1);
printf("str2 depois da copia = %s", str2);
return 0;
}
Saídas e testes:
Entradas: str1 = “abc” ; str2 = “LinguagemC”.
...