проверка последнего символа строки в c - PullRequest
8 голосов
/ 08 апреля 2010

Если у меня есть два типа строк:

const char *str1 = "This is a string with \"quotes escaped at the end\""; 
const char *str2 = "This is a \"string\" without quotes at the end"; 

testFn(str1);
testFn(str2);

int testFn(const char *str)
{
  // test & return 1 if ends on no quote
  // test & return 0 if ends on quote
  return;
}

Я хотел бы проверить, заканчивается ли строка кавычкой "или нет

Что было бы хорошим способом проверить это? Спасибо

Ответы [ 3 ]

10 голосов
/ 08 апреля 2010

Не забудьте убедиться, что ваша строка содержит хотя бы 1 символ:

int testFn(const char *str)
{
    return (str && *str && str[strlen(str) - 1] == '"') ? 0 : 1;
}
4 голосов
/ 08 апреля 2010
int testFn(const char *str)
{
  return !str || !*str || str[strlen(str) - 1] != '\"';
}
1 голос
/ 08 апреля 2010
int testFn(const char *str)
{
  if(*str && str[strlen(str + 1)] == '"')
    return 0;
  else
    return 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...