The condition of the if statement yields true if and only if "substring" is not part of string s.
Be very careful when using the string value npos and its type. When you want to check the return value, always use string::size_type, not int or unsigned for the type of the return value; otherwise, the comparison of the return value with string::npos might not work. This behavior is the result of the design decision that npos is defined as -1