MickyOr

Strings

Jul 5th, 2016
184
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     -   Declaración y lectura.
  2.  
  3. string nombre; // declaracion
  4. cin>>s;
  5. getline(cin, s); // si necesitas leer una linea completa incluyendo espacios.
  6.  
  7. Hay un problema con getline cuando se usa luego de usar cin
  8. Ej:
  9. cin>>n;
  10. getline(cin, s);
  11. Si la entrada fuera
  12. 3
  13. abc def g
  14. n = 3, s = "3"
  15.  
  16. Esto se arregla poniendo cin.ignore(); luego del cin
  17. cin>>n;
  18. cin.ignore();
  19. getline(cin, s);
  20. Si la entrada fuera
  21. 3
  22. abc def g
  23. n = 3, s = "abc def g"
  24.  
  25.     -   Concatenación
  26.  
  27. string s1 = "Hello_", s2 = "World", s3;
  28. s3 = s1 + s2;
  29. cout<<s3; // imprime "Hello_World";
  30. s3 += '!'; // tambien puede ser "!" o "!!!" (comillas simples para char, dobles para string)
  31. cout<<s3; // imprime "Hello_World!"
  32.  
  33.     -   Comparación
  34.  
  35. if (s == "abcd") { ... }
  36. el operador < y > ve el orden lexicografico.
  37. Ej:
  38. "abcd" < "abce"
  39. "azzzzzzzz" < "baa"
  40. "12345" < "12445"
  41. "199999" < "9"
  42.  
  43.     -   Tamaño y acceso a elementos individuales
  44.  
  45. string s = "abcba";
  46. cout<<s.length(); o cout<<s.size(); // imprime el tamaño del string, en este caso, 5
  47. cout<<s[posicion]; // imprime el caracter del string en la posicion que le digas, como un string es como un vector de chars, esto nos devuelve un char
  48. for (int i = 0; i < s.length(); i++) { cout<<s[i]; }
  49.  
  50.     -   Substings
  51.  
  52. original.substr(posicionDeInicio, tamaño);
  53. string s = "abcdefgh";
  54. cout<<s.substr(0, 3); // imprime abc
  55. cout<<s.substr(2, 2); // imprime cd
  56.  
  57.     -   Ordenar o darle la vuelta a un string (librería algorithm)
  58.  
  59. sort(s.begin(), s.end()); // "cbdca" -> "abccd"
  60. reverse(s.begin(), s.end());
  61.  
  62.     -   Extra
  63.  
  64. Para convertir un char de mayúscula a minúscula o viceversa se usa toupper(..) y tolower(..)
  65. ej:
  66. char c = 'a';
  67. c = toupper(c);
  68. cout << c; //A
  69. string s = "QWEr";
  70. s[0] = tolower(s[0]);
  71. cout << s; //qWEr
  72.  
  73. Para relacionar una letra con su posición en el alfabeto, o una posición con la letra que le corresponde podemos usar su código ASCII http://www.asciitable.com/
  74. ej:
  75. char letra = 'c';
  76. cout << letra - 'a'; //2
  77.  
  78. int pos = 12; // a = 0, b = 1...
  79. char letra = 'a' + pos;
  80. cout << letra; //m
  81.  
  82. s.clear(); // elimina todos los valores del string, vacia el string
RAW Paste Data