1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| [troumad@portable][~/Cours_IUT/info]$ cat chaine.cbp
<?xml version="1.0"?>
<!DOCTYPE CodeBlocks_project_file>
<CodeBlocks_project_file>
<FileVersion major="1" minor="1"/>
<Project>
<Option title="Console application"/>
<Option makefile="Makefile"/>
<Build>
<Target title="default">
<Option type="1"/>
<Option parameters=""/>
<Option includeInTargetAll="1"/>
<Option projectCompilerOptionsRelation="3"/>
<Option projectLinkerOptionsRelation="3"/>
<Option projectIncludeDirsRelation="3"/>
<Option projectLibDirsRelation="3"/>
<Compiler>
<Add option=""/>
</Compiler>
<Linker>
<Add option=""/>
</Linker>
</Target>
</Build>
</Project>
</CodeBlocks_project_file>
[troumad@portable][~/Cours_IUT/info]$ cat main.cpp
#include <stdio.h>
#include <string.h>
int main()
{
char chaine[100], ch[10], c, *p;
unsigned short i=0,j,k;
printf("Donnez une chaine de caractères : ");
scanf("%s",chaine);
printf("Quel caractère cherchons-nous dedans : ");
fflush(stdin);
scanf("%c",&c);
scanf("%c",&c);
/* version incompréhensible */
for(p=chaine-1;(p=strchr(p+1,c))!=NULL;i++);
printf("%c apparait %hu fois dans la chaine : %s\n",c,i,chaine);
/* version compréhensible */
for (i=0,j=0;chaine[j]!=0;j++) // double initialisation
if (chaine[j]==c)
i++;
printf("%c apparait %hu fois dans la chaine : %s\n",c,i,chaine);
printf("Quelle chaine voulez-vous chercher dans votre première chaine de caractères ? : ");
scanf("%s",ch);
/* version incompréhensible */
for(i=0,p=chaine-1;(p=strstr(p+1,ch))!=NULL;i++);
printf("%s apparait %hu fois dans la chaine : %s\n",ch,i,chaine);
/* version plus compréhensible */
for (i=0,j=0;chaine[j]!=0;j++) // double initialisation
if (chaine[j]==ch[0])
{
for (k=1;ch[k]!=0 && ch[k]==chaine[j+k];k++);// tant que c'est la même chose et qu'on n'est pas sorti de la chaine
if (ch[k]==0) // si on est sorti après avoir parcouru toute la chaine
i++;
}
printf("%s apparait %hu fois dans la chaine : %s\n",ch,i,chaine);
}
[troumad@portable][~/Cours_IUT/info]$ |
Partager