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

Résolu/Fermé
dikdableu Messages postés 85 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 18 août 2016 - 12 janv. 2014 à 17:33
dikdableu Messages postés 85 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 18 août 2016 - 12 janv. 2014 à 19:28
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 ^^'.
A voir également:

3 réponses

chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
12 janv. 2014 à 17:53
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
Modifié par fiddy le 12/01/2014 à 18:15
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
#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
dikdableu Messages postés 85 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 18 août 2016 22
12 janv. 2014 à 18:50
j'ai fais comme sa . mais sa ne marche pas . pourquoi ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 janv. 2014 à 18:56
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
dikdableu Messages postés 85 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 18 août 2016 22
12 janv. 2014 à 19:04
merci fiddy je vais essayer sa . c'est pour un cours de programmation . je suis bloqué donc je demande de l'aide :)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 janv. 2014 à 19:07
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
Utilisateur anonyme
12 janv. 2014 à 17:37
Bah tu te mets après l'espace ou la tabulation et tu appuies sur la touche "effacer".
-1
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
12 janv. 2014 à 17:38
Mdr, je pense plutôt qu'il veut une fonction trim() en C uniquement pour le début de phrase
0
dikdableu Messages postés 85 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 18 août 2016 22
Modifié par dikdableu le 12/01/2014 à 17:49
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