Supprimer un espace ou une tabulation en début de phrase

Résolu
dikdableu Messages postés 109 Statut Membre -  
dikdableu Messages postés 109 Statut Membre -
Bonjour ,
voilà comme dis dans le titre j'aimerais supprimer un espace ou un tabulation de début de phrase mais je ne sais pas trop comment faire ^^'.

3 réponses

  1. chico200987 Messages postés 856 Statut Membre 144
     
    Dans ce cas là c'est très simple si tu veux supprimer uniquement le premier char :

    char * delete_first_char(char * str)
    {
        return &str[1];
    }
    

    1
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Je mets juste une petite variante, mais le code de chico200987 est très bien :
    char * delete_first_char(char const * str) {
         return str+1;
    }
    

    Cdlt,

    Google is your friend
    1
    1. dikdableu
       
      #include <stdio.h>
      #include <math.h>
      #include <stdlib.h>
      
      char * delete_first_char(char const * str)
      {
          return str+1;
      }
      
      
      int main ()
      { 
      	char text[250];
      
      	printf("rentrez une phrase\n:");
      	fgets(text,250,stdin);
      
      	
      switch (text[250])
      		{
      			case ' ':
      				delete_first_char(text[250]);
      			break;
      			case '	':
      				delete_first_char(text[250]);
      			break;
      		}
      
      	printf("voici votre phrase\n:%s ",text[250]);
      	return 0;
      
      }
      0
    2. dikdableu Messages postés 109 Statut Membre 22
       
      j'ai fais comme sa . mais sa ne marche pas . pourquoi ?
      0
    3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      switch (text[250])
      J'imagine que tu veux parler de la chaîne entrée par l'utilisateur. Si c'est le cas, ce n'est pas text[250], mais text. text[250] représente le 251ème caractère de ta chaîne qui n'en comporte d'ailleurs que 250... Le dernier est text[249].

      Pour comparer des chaînes de caractère, il faut utiliser la fonction strcmp() (ou mieux strncmp()). Donc tu ne pourras pas utiliser switch().

      Voici comment procéder :
      if (strcmp(text, "coucou") == 0) {
        /*la chaîne est égale à coucou*/
      }
      

      Note bien qu'il s'agit de guillemets et non d'apostrophes.

      En revanche, je ne comprends pas très bien ce que tu souhaites faire ? Quel est le but de ton programme ?
      0
    4. dikdableu Messages postés 109 Statut Membre 22
       
      merci fiddy je vais essayer sa . c'est pour un cours de programmation . je suis bloqué donc je demande de l'aide :)
      0
    5. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Quand je demandais le but du programme, c'était dans le sens qu'est-ce que tu cherches à faire. Je ne vois pas où tu veux en venir en comparant avec " " et " ".
      0
  3. Utilisateur anonyme
     
    Bah tu te mets après l'espace ou la tabulation et tu appuies sur la touche "effacer".
    -1
    1. chico200987 Messages postés 856 Statut Membre 144
       
      Mdr, je pense plutôt qu'il veut une fonction trim() en C uniquement pour le début de phrase
      0
    2. dikdableu Messages postés 109 Statut Membre 22
       
      sa peux etre une tabulation , un espace ou n'importe quoi d'autre mais il faut que je supprime le premier caractere de ma phrase
      0