Ir para conteúdo
Fórum Script Brasil
  • 0

Qual a maneira mais simple para se chegar ao resultado?


Felipe_JDES

Pergunta

preciso resolver essa questão qual a maneira mais simples para fazer esse metodos em linguagem C?

Crie a função stringAddall que recebe um ponteiro para uma string como primeiro argumento e um

vetor de caracteres como segundo argumento. A função deve adicionar todos os caracteres do vetor de caracteres no final da string dado como primeiro argumento. O protótipo da função deve ter o seguinte formato:

Void stringAddAll(String *s, char a[], int n){

//implementação aqui

}

observe que n é a quantidade de caracteres no vetor a.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
preciso resolver essa questão qual a maneira mais simples para fazer esse metodos em linguagem C?

Crie a função stringAddall que recebe um ponteiro para uma string como primeiro argumento e um

vetor de caracteres como segundo argumento. A função deve adicionar todos os caracteres do vetor de caracteres no final da string dado como primeiro argumento. O protótipo da função deve ter o seguinte formato:

Void stringAddAll(String *s, char a[], int n){

//implementação aqui

}

observe que n é a quantidade de caracteres no vetor a.

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

typedef struct TChar {

char value;

struct TChar *next;

} Char;

typedef struct TString {

Char *first;

int size;

} String;

String* newString(void){

String *s = (String*) malloc (sizeof(String));

s->size = 0;

s->first = NULL;

return s;

}

void StringWriting(String *str){

Char *tmp = str->first;

while (tmp != NULL) {

printf("%c", tmp->value);

tmp = tmp->next;

}

printf("\n");

}

void StringAppend(String *str, char c) {

if (str->size == 0) {

str->first = (Char*) malloc (sizeof(Char));

str->first->value = c;

str->size++;

} else {

Char *tmp = str->first;

while (tmp->next != NULL) {

tmp = tmp->next;

}

Char *novo = (Char*) malloc (sizeof(Char));

novo->value = c;

novo->next = NULL;

tmp->next = novo;

str->size++;

}

}

void StringReadLine(String *str) {

char c = getchar();

while (c != '\n'){

StringAppend(str, c);

c = getchar();

}

}

void StringAddAll(String *s, char a[], int n){

int i;

for(i=0; i<n; i++){

StringAppend(s, a);

}

s->size = s->size+n;

}

int main(){

String *str = newString();

StringReadLine(str);

char a[] = {", Ola"};

StringAddAll(str, a, strlen(a));

StringWriting(str);

}

Link para o comentário
Compartilhar em outros sites

  • 0
#include <stdio.h>

typedef unsigned char String;

void stringAddAll(String *s, char *a /* equivalente a a[]*/, int n)
{
    while(*s != 0)
        s++;
    
    while(n--)
        *s++ = *a++;
    *s = 0;
}

int main(int argc, char **argv)
{
    String str[256] = "hello";
    char a[] = " world!";
    
    stringAddAll(str, a, 7);
    puts((char*)str);
    return 0;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...