0

Например даны две строки:

Y37W90
e389r758m3q1179

Я хочу итерироваться по обеим строкам и сравнить в них цифры. Хочу сделать это с помощью двух указателей, но не знаю как правильно цифры типа string перевести в тип int для сравнения.

Danis
  • 19,777
  • 6
  • 22
  • 56
Swagga
  • 1
  • Возможный дубликат вопроса: Как конвертировать символ в цифру? – wololo Feb 18 '23 at 22:03
  • А зачем переводить? просто идете в обеих строках посимвольно, пока isdigit для очередного символа не даст true — после чего сравниваете два символа. Ведь что, например, сравнение двух '5', что сравнение двух 5 == '5' - '0' — дадут один и тот же результат. Если это не то, что вам нужно — то сформулируйте свой вопрос более точно. – Harry Feb 19 '23 at 06:20
  • string это контейнер, содержащий массив данных типа char, который совместим с типом int (на х86 тип char знаковый, т.о. от типа int он отличается лишь размером (т.е. диапазоном возможных значений)). Десятичные цифры в этом массиве представлены своими кодами (обычно ascii). Поэтому вы можете их сравнивать как числа (т.е. int) – avp Feb 19 '23 at 12:30

1 Answers1

1

Вам и не надо переводить ничего в int, ведь в c++ ('1' > '4') выдаст false, иначе говоря, вы можете сравнивать цифры прямо в char!

Tumit
  • 11
  • Тут надо уточнить, что такой метод сработает только для двух цифр и основан на сравнении порядковых номеров символов, но никак не числовых значений. Если нужно будет сравнить числа с двумя и более цифрами, такой метод не сработает. – T0xee.n17 Feb 19 '23 at 10:28
  • В вопросе говорили про цифры, да и я в ответе написал что цифры можно сравнивать. Однако да, числа так сравнивать никак нельзя) – Tumit Feb 19 '23 at 12:10