Show, obrigadao ai pelas respostas!
Obrigadao aí Gira e Lord Ruka pelas respostas bem detalhadas!![]()
Publicidade:
Jogue Tibia sem mensalidades!
Taleon Online - Otserv apoiado pelo TibiaBR.
https://taleon.online
Curtir: 0
Show, obrigadao ai pelas respostas!
Obrigadao aí Gira e Lord Ruka pelas respostas bem detalhadas!![]()
"Why are you wearing that stupid man suit?"
[away]
Alguém sabe ou recomenda algum tutorial sobre como dividir um progama em C/C++ em vários códigos fontes? achei só em inglês até agora.
I needed somewhere to hang my head; Without your noose
You gave me something that I didn't have; But had no use
I was too weak to give in; Too strong to lose
My heart is under arrest again; But I'll break loose
My head is giving me life or death; But I can't choose
I swear I'll never give in; I refuse
#include <stdio.h>
#include <conio.h>
#include <string.h>
char sol(char &string){
printf("Digite uma frase com no maximo 29 caracteres: \n");
gets(&string);
while(strlen(&string)==0){
printf("Digite pelo menos um caracter! \nDigite uma frase com no maximo 29 caracteres: \n");
gets(&string);}
return string;
}
int cont(int &spc, char string){
int i;
for(i=0;i<=strlen(&string);i++){
if(&string[i]==' ') spc++;
else if(&string[i]=='\n') break;
}
return spc+1;
}
int main(){
int spc=0;
char string[30];
sol(*string);
printf("O numero de palavras na frase e %d!", cont(*spc, *string);
getch();
return 0}
Não consigo varrer o string, diz que os tipos char[int] é inválido sendo que me ensinaram a varrer assim e antes, quando fiz tudo no main, deu tudo certo!
Explicação nos comentários.#include <stdio.h>
#include <string.h>
#include <conio.h>
char *sol(char *string) /*Você declara um ponteiro para o texto.
Fazendo char &string, você está tentando alocar outro texto novamente,
o que não é permitido dentro dos parâmetros da função. A mesma coisa com char sol.*/
{
// Lembrando que o vetor começa do 0, então é possivel inserir 30 caracteres.
/* Lembre-se também que agora você está declarando outro ponteiro para a string,
mas o &string é diferente, porque esse ponteiro não é o mesmo do que a da classe main. */
printf("Digite uma frase com no maximo 29 caracteres: \n");
gets(string);
while(strlen(string)==0)
{
printf("Digite pelo menos um caracter! \nDigite uma frase com no maximo 29 caracteres: \n");
gets(string);
}
return string;
}
int cont(int *spc, char *string)
{
int i;
for(i=0;i<=strlen(string);i++)
{
if(string[i]==' ') (*spc)++;
else if(string[i]=='\0') break; // A string termina com \0, não com \n.
}
return *spc+1;
}
int main()
{
int spc=0;
char string[30];
sol(&string); // Com *string, você está pegando somente o primeiro caractere do texto.
printf("O numero de palavras na frase e %d!", cont(&spc, &string)); // Faltou fechar os parenteses.
getch();
return 0;
}
<editado>
@Krakrek, valeu, cara, mas não rodou aqui :x
Se tiver alguém aí que possa me ajudar eu agradeço.
Já é a segunda vez que acontece e não consigo solucionar o problema. Eu digitei o códio do programa em C, compilei certinho mas na hora de executar a janela abre e aparece a mensagem "O Arquivo***** parou de funcionar"...
Alguém sabe o que pode ser?
"Why are you wearing that stupid man suit?"
[away]




Se você tiver mexendo com ponteiro vai acontecer isso direto porque ponteiro é coisa do capeta e vai causar muitos memory leaks e erros de segmentação nos códigos.
Ah, beleza. Eu vou tentar encontrar o problema, se eu não conseguir eu posto aqui pra vocês me ajudarem( até porque eu nem tinha dado uma olhada com carinho, não sabia que poderia acontecer isso rs).
Obrigado.
"Why are you wearing that stupid man suit?"
[away]