Pessoal ajuda em c

entao … estou no primeio semestre da facul e estou com a glumas duvidas em um trabalho …no qual eu tenho q deslocar um caracter dentro de uma string … por exemplo:
ONTEM CHOVEU MUITO — ficaria----ntemo hoveuc uitom… a logica para resolucao deste seria procurar o espaco entre as frases e jogar a primeira letra uma posicao antes do espaco e jogar as demais letras uma posicao antes… porem nao sei fazer isso funcionar em c … se puderem me ajudar agradeco muito xD vlw.

Só com o código para te ajudar.

Se precisa ser em C, estude sobre arrays de caracteres.

Como você faria isso em pseudo-código?

bom… eu faria um for com a funcao strlen … dentro do laco faria um if para encontrar ‘espaco’ dentro da frase, … ao achar ‘espaco’ teria que jogar a primeira letra de cada palavra na posicao anterior ao espaco e as demais letras cada uma na posicao anterior que estas estavam… ai que esta o problema… n consigo fazer a logica dentro do for funcionar corretamente.

Antes de escrever uma linha sequer de código, faça um teste de mesa. Então faça o pseudo-código. Só aí implemente.

Quando você estiver mais acostumado com programação, você pode pular algumas dessas etapas; mas por enquanto é melhor você ser bem quadradinho e fazer as coisas asssim.

Outra coisa que ajuda é você dividir o seu problema em partes (ou métodos). Como é que você separa as palavras? Como é que você inverte a ordem das letras dentro de uma palavra? E assim por diante.

brigadaum pelas dicas … eh q ta bem foda saca … eu n tive um contato com programacao antes de entrar na usp e pelo fato de ser la fica ainda mais dificil eh meio q …“da seus pulo” mas brigadaum

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


void func(char fr[]){
int i;
int primeiraLetra=0;
char letra; /* Letra eh do tipo char */

/*A regra no loop pode ser guardar a primeira letra depois de todo espaco.
  Como a primeira palavra nao tem espaco, guarde antes de entrar no loop */
 /* primeira letra*/

for(i=strlen(fr);i>0;i--){ /* strlen precisa do parametro (char []). 
                              E como ja guardou primeira letra, pode comecar de 1 */
      
   if ((fr[i] != '\0') & (fr[i] != '\n')) { /*Testar se não eh final de linha*/
      
      if(fr[i] != ' ') {       /* Testa se nao eh espaco */
         if (!primeiraLetra){  /* Se nao for primeira letra (apos espaco) */
            fr[i+1]=fr[i];   /* Copia para a posicao anterior */
         }
         else {
            primeiraLetra=0;   /* Se for primeira letra, a proxima nao sera! */
         }
      }
      else {                   /* Proxima letra de 'fr' eh espaco */
         fr[i-1]=letra;      /* Copia a primeira letra da palavra no final! */
         letra = fr[i+1];      /* Guarda a proxima primeira letra */
         primeiraLetra=1;      /* Setar que proximo caracter eh primeira letra */
      }
   }
   else {
        
      fr[i+1]=letra;   /* Final do string */
                      /* Copiar a primeira letra desta palavra no final.*/ 
   
   }
} /* fim do for*/
fr[i+1] = letra;
             
} /* fim da funcao */                                                                   

             
int main(int argc, char *argv[])
{
  char str[100];
  int i;
  printf("digite a frase\n");
  gets(str);
  func(str);
  printf("a frase ficou:%s\n",str);
  system("PAUSE");	
  return 0;
}

ta ai consegui xD