Me gustaría comparar un literal de carácter con el primer elemento de cadena, para comprobar si hay comentarios en un archivo. ¿Por qué usar un char? Quiero hacer de esto una función que acepte un carácter var para el comentario. No quiero permitir una cadena porque quiero limitarla a un solo carácter de longitud.Comparación de Literal de carácter a Std :: String en C++
Con esto en mente, asumí que el camino más fácil sería abordar el personaje y pasarlo a la función de comparación std :: string. Sin embargo, esto me está dando resultados no deseados.
Mi código es el siguiente:
#include <string>
#include <iostream>
int main (int argc, char *argv[])
{
std::string my_string = "bob";
char my_char1 = 'a';
char my_char2 = 'b';
std::cout << "STRING : " << my_string.substr(0,1) << std::endl
<< "CHAR : " << my_char1 << std::endl;
if (my_string.substr(0,1).compare(&my_char1)==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
std::cout << "STRING : " << my_string.substr(0,1) << std::endl
<< "CHAR : " << my_char2 << std::endl;
if (my_string.substr(0,1).compare(&my_char2)==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
std::cout << "STRING : " << my_string << std::endl
<< "STRING 2 : " << "bob" << std::endl;
if (my_string.compare("bob")==0)
std::cout << "WOW!" << std::endl;
else
std::cout << "NOPE..." << std::endl;
}
me da ...
STRING : b
CHAR : a
NOPE...
STRING : b
CHAR : b
NOPE...
STRING : bob
STRING 2 : bob
WOW!
¿Por qué piensan que la función de la sub-cadena y el carácter no son los mismos. ¿Cuál es la forma más corta de comparar correctamente chars y std :: string vars?
(una breve diatriba a reclasificación evitar de mi pregunta .... puede saltarse)
cuando digo que quiero decir más corto que de un deseo de la elocuencia de codificación. Tenga en cuenta que esta NO es una pregunta para la tarea. Soy un candidato Ph.D de ingeniería química y estoy codificando como parte de una investigación independiente. Una de mis últimas preguntas fue reclasificada como "tarea" por el usuario msw (quien también hizo una observación sarcástica) cuando le pregunté sobre la eficiencia, que consideré al borde del abuso. Mi código puede o no ser reutilizado por otros, pero estoy tratando de que sea fácil de leer y mantener. También tengo un extraño deseo de hacer que mi código sea lo más eficiente posible siempre que sea posible. De ahí las preguntas sobre eficiencia y elocuencia.
Y no olvide comprobar que '0