fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define LEN 200
  6.  
  7. void name_abbreviated (char name[]) {
  8. //printf("|%s|\n", name);
  9. char last_name[20];
  10. int j = 0, last_space_idx;
  11. for(int i = strlen(name) - 1; i >= 0; --i)
  12. {
  13. if(name[i] == ' ')
  14. {
  15. last_space_idx = i;
  16. while(name[i])
  17. last_name[j++] = name[++i];
  18. last_name[j] = '\0';
  19. break;
  20. }
  21. }
  22. //printf("|%s|\n", last_name);
  23. char rest_name[15];
  24. rest_name[0] = name[0];
  25. rest_name[1] = '.';
  26. rest_name[2] = ' ';
  27. j = 3;
  28. for(int i = 3; i < last_space_idx; ++i)
  29. {
  30. if(name[i] == ' ')
  31. {
  32. rest_name[j++] = name[i + 1];
  33. rest_name[j++] = '.';
  34. rest_name[j++] = ' ';
  35. }
  36. }
  37. rest_name[j - 1] = '\0';
  38. //printf("|%s|\n", rest_name);
  39. printf("%s, %s\n", last_name, rest_name);
  40. }
  41.  
  42. int main() {
  43. char name[LEN];
  44. printf("Type a full name : ");
  45. fgets(name, LEN, stdin);
  46. printf("\n");
  47. name_abbreviated(name);
  48. }
Success #stdin #stdout 0s 9432KB
stdin
Edward Cantrell Cavender Davis
stdout
Type a full name : 
Davis, E. C. C.