Форум программистов, компьютерный форум, киберфорум
Наши страницы

Узнать, есть ли в строке те или иные символы... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Игра, где мяч нужно отбить блоком http://www.cyberforum.ru/cpp-beginners/thread227123.html
:) Здравствуйте! Подскажите пожалуйста, Тренируюсь сделать что-то на подобии игры небольшой для начала и тут такое дело! :) Допустим есть движущийся мяч по экрану, отпрыгивающий от краёв (x=-x) и...
C++ train Доброго времени суток, форумчане! Нужна помощь ) Есть задание: описать структуру с именем train, содержащую след. поля: 1)название пункта назначения 2)номер поезда 3)время отправления написать... http://www.cyberforum.ru/cpp-beginners/thread227111.html
Имитация роботы охранной системы C++
Нужна програма которая имитирует роботу охранной системы в помещении. Подскажите хоть с чего начать, может у кого есть хоть что-то. Кто знает как она хоть должна работать???
C++ В каждом байте числа переместить единичные биты в конец
Помогите пожалуйста с решением задач. Очень надо. На Си никогда не писал, сам сделать не смогу. 1. В каждом байте числа переместить единичные биты в конец. Условие - побитовая обработка (т.е. без...
C++ Программа на функцию http://www.cyberforum.ru/cpp-beginners/thread227097.html
Дан одномерный массив из 50 случайных целых чисел в диапазоне от 10 до 85 включительно. Вывести в порядке возрастания те числа из данного диапазона, которые ни разу не встречаются в массиве. Создать...
C++ Работа с файлами Доброе время суток. Работа с файлами 1. Вывести на экран текст программы. 2. Вывести на экран текст программы, но каждое слово на одной строке. 3. Вывести на экран текст... подробнее

Показать сообщение отдельно
lemegeton
2927 / 1356 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
11.01.2011, 14:31
Символьные константы в С обозначаются одинарными кавычками. 'X' -- символьная константа, "X" -- строковая константа.

Конкатенция (булевое "И") в С обозначается двумя амперсандами (&&), а один амперсанд (&) это битовая конкатенция. Оно тут, конечно, сработает, но не логично.

Если вы сравниваете символ с символом, вам не нужно использовать функцию, сравнивающую две строки.
Сравнивайте c[i] == 'X'.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <string.h>
 
int HasOtherSymbols(const char *a_string, const char *valid_chars) {
  int counter = 0;
  for (int i = 0; i < strlen(a_string); ++i) {
    int match = 0;
    for (int j = 0; j < strlen(valid_chars); ++j)
      if (a_string[i] == valid_chars[j]) {
        match = 1;
        break;
      }
    counter += (match == 1) ? 0 : 1;
  }
  return counter;
}
 
int main(int argc, char *argv[]) {
  char *a_string = "ivx3";
 
  printf("String '%s' has %d incorrect symbol(s).\n", a_string, HasOtherSymbols(a_string, "ivxl"));
 
  return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.