fork download
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4.  
  5. // In case you need this -- not needed for this case
  6. void discard_input()
  7. {
  8. char c;
  9.  
  10. while( ( c = getchar() ) != '\n' && c != EOF );
  11. }
  12.  
  13. void remove_trailing_newline(char * s)
  14. {
  15. char * ch = s + strlen( s ) - 1;
  16.  
  17. while( ch != s ) {
  18. if ( *ch == '\n' ) {
  19. *ch = 0;
  20. break;
  21. }
  22.  
  23. --ch;
  24. }
  25.  
  26. return;
  27. }
  28.  
  29. int main(){
  30. char name[30];
  31. char number[12];
  32. int flag, flag1, flag2, flag3;
  33. int i;
  34.  
  35.  
  36. printf("Add New Contact\n");
  37. do {
  38.  
  39. printf("\nInput name [1..30 char]: ");
  40. fgets( name, 30, stdin );
  41. remove_trailing_newline( name );
  42. flag1 = flag = 1;
  43.  
  44. if ( !isalpha( name[ 0 ] ) ) {
  45. flag = 0;
  46. printf("First letter of name should be an alphabet (A-Z or a-z), found: %s\n", name );
  47.  
  48. }
  49.  
  50. // impossible
  51. if (strlen(name) > 30) {
  52. flag1 = 0;
  53. printf("Length of name should be between 1 and 30 characters\n");
  54. }
  55.  
  56. } while (flag == 0 || flag1 == 0);
  57.  
  58. do {
  59. printf("\nInput phone number[6..12 digits]: ");
  60. fgets( number, 12, stdin );
  61. remove_trailing_newline( number );
  62. flag2 = flag3 = 1;
  63. int len_phone = strlen( number );
  64.  
  65. for (i = 0; i < strlen(number); i++) {
  66. if ( !isdigit( number[ i ] ) ) {
  67. flag2 = 0;
  68. }
  69. }
  70.  
  71. if (flag2 == 0) {
  72. printf("Phone numbers should only contain digits (0-9), found:'%s'\n", number);
  73. }
  74.  
  75. if ( len_phone < 6 || len_phone > 12) {
  76. flag3 = 0;
  77. printf("Length of phone numbers should be between 6 and 12 digits, found: %d\n", len_phone );
  78. }
  79.  
  80. } while (flag2 == 0 || flag3 == 0);
  81.  
  82. printf("\n");
  83. printf( "Name: '%s'\n", name );
  84. printf( "Phone: '%s'\n", number );
  85. printf("New contact successfully added!\n");
  86. printf("Press Enter to continue...");
  87. return 0;
  88. }
  89.  
Success #stdin #stdout 0s 2116KB
stdin
+Baltasar
Baltasar
0
+34988368891
988368891
stdout
Add New Contact

Input name [1..30 char]: First letter of name should be an alphabet (A-Z or a-z), found: +Baltasar

Input name [1..30 char]: 
Input phone number[6..12 digits]: Length of phone numbers should be between 6 and 12 digits, found: 1

Input phone number[6..12 digits]: Phone numbers should only contain digits (0-9), found:'+3498836889'

Input phone number[6..12 digits]: Length of phone numbers should be between 6 and 12 digits, found: 1

Input phone number[6..12 digits]: 
Name: 'Baltasar'
Phone: '988368891'
New contact successfully added!
Press Enter to continue...