Gallad

TP2_C

Jan 1st, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void saisieA (char * tab){ // Version sans pointeur
  6. char c;
  7. int i=0;
  8. do{
  9. c = getchar();
  10. tab[i] = c;
  11. i++;
  12. }while(c!='\n');
  13. tab[i-1]='\0';
  14. }
  15.  
  16. void saisieAbis(char * tab){ // Version avec pointeur
  17. char c, *p;
  18. p = tab;
  19. do{
  20. c=getchar();
  21. *p=c;
  22. p++;
  23. }while(c!='\n');
  24. *(p-1)='\0';
  25. }
  26.  
  27. char * saisieB (){
  28. char tmp [10000];
  29. char *tab;
  30. int taille;
  31. saisieA(tmp);
  32. taille = strlen(tmp)+1;
  33. tab = (char *)malloc(taille*sizeof(char));
  34. strcpy(tab, tmp);
  35. return tab;
  36. }
  37.  
  38. char* saisiec()
  39. {
  40. int i, nb;
  41. char* ancien;
  42. char* nouv;
  43. char car;
  44. ancien = malloc (1*sizeof(char));
  45. nb=0;
  46. fflush(stdin);
  47. do{
  48. car = getchar();
  49. ancien[nb++] = car;
  50. nouv = malloc ((nb+1)*sizeof(char));
  51. strncpy(nouv, ancien, nb*sizeof(char));
  52. free (ancien);
  53. ancien = nouv;
  54. }
  55. while (car != '\n');
  56. nouv[i-1]= '\0';
  57. return ancien;
  58. }
  59.  
  60.  
  61. char * supprime ( char *src, char c) // Découplage donnée/résultat
  62. {
  63.  
  64. char* dest;
  65. int i, j, cpt, taille;
  66. for (i = 0, cpt = 0; src[i]!='\0'; i++)
  67. {
  68. if (src[i] == c)
  69. {
  70. cpt++;
  71. }
  72. }
  73. taille = strlen(src)-cpt +1;
  74. if(taille != 1){
  75. dest = (char*)malloc (taille * sizeof(char));
  76. for ( i = 0 , j = 0; src[i]!='\0'; i++){
  77. if(src[i]!=c){
  78. dest[j++] = src[i];
  79. }
  80. dest[j]='\0';
  81. }
  82. }else{dest = NULL;}
  83. free(src);
  84. return dest;
  85. }
  86.  
  87. int main()
  88. {
  89. char * tab;
  90. tab = saisiec();
  91. tab = supprime(tab,'a');
  92. printf("tab = %s", tab);
  93. return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment