Show, obrigadao ai pelas respostas!
Obrigadao aí Gira e Lord Ruka pelas respostas bem detalhadas! :D
Versão Imprimível
Show, obrigadao ai pelas respostas!
Obrigadao aí Gira e Lord Ruka pelas respostas bem detalhadas! :D
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.
Citação:
#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.Citação:
#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;
}
@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?
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.