Та ну, думаю, что есть библиотечные функции, которые справятся с этим лучше.перебирать его на наличие определенных символов?
Пожалуйста, авторизуйтесь для просмотра ссылки.
давно массив символов стал буфером?)Как найти в буфере определённые символы?
C++:static char buf[15];
Ну тип называется buf - значит буфердавно массив символов стал буфером?)
strstr?Та ну, думаю, что есть библиотечные функции, которые справятся с этим лучше.
#include <iostream> //std::cout
bool first_occurrence = true; // если надо найти только первое упоминание
int main() {
static char buf[15] = "aacdefghijklmn"; // 15 char
for (int i = 0; i < 15; i++) {
std::string s(1, buf[i]);
if (s == "a") {
std::cout << "Letter - " << buf[i] << " - found! Location: " << i << " Address: " << static_cast<void*>(&buf[i]) << std::endl;
if (first_occurrence)
break;
}
}
}
/*
**first_occurrence = true**
* output:
* Letter - a - found! Location: 0 Address: 00B70008
*
**first_occurrence = false**
* output:
* Letter - a - found! Location: 0 Address: 00090004
* Letter - a - found! Location: 1 Address: 00090005
*/
#include <iostream> //std::cout
int main() {
static char buf[15] = "aacdefghijklmn"; // 15 char
const char* search[5] = { "a","c","d","f","g" };
int index[5] = { 0, 0, 0, 0, 0 };
for (int i = 0; i < 15; i++) {
std::string s(1, buf[i]);
for (int b = 0; b < 5; b++) {
if (s == search[b]) {
index[b]++;
std::cout << "found: " << buf[i] << " [" << index[b] << "] | buffer idx: " << i << " | search char: " << search[b] << " | search idx: " << b << " | mem: " << static_cast<void*>(&buf[i]) << std::endl;
}
}
}
}
not workstrstr?
память выделяешь, не круто... то же самое но без выделения памятиговнокод но мне пох ваа ээ
либо так..C++:#include <iostream> //std::cout bool first_occurrence = true; // если надо найти только первое упоминание int main() { static char buf[15] = "aacdefghijklmn"; // 15 char for (int i = 0; i < 15; i++) { std::string s(1, buf[i]); if (s == "a") { std::cout << "Letter - " << buf[i] << " - found! Location: " << i << " Address: " << static_cast<void*>(&buf[i]) << std::endl; if (first_occurrence) break; } } } /* **first_occurrence = true** * output: * Letter - a - found! Location: 0 Address: 00B70008 * **first_occurrence = false** * output: * Letter - a - found! Location: 0 Address: 00090004 * Letter - a - found! Location: 1 Address: 00090005 */
C++:#include <iostream> //std::cout int main() { static char buf[15] = "aacdefghijklmn"; // 15 char const char* search[5] = { "a","c","d","f","g" }; int index[5] = { 0, 0, 0, 0, 0 }; for (int i = 0; i < 15; i++) { std::string s(1, buf[i]); for (int b = 0; b < 5; b++) { if (s == search[b]) { index[b]++; std::cout << "found: " << buf[i] << " [" << index[b] << "] | buffer idx: " << i << " | search char: " << search[b] << " | search idx: " << b << " | mem: " << static_cast<void*>(&buf[i]) << std::endl; } } } }
#include <iostream>
#define ARRAYSIZE( arr ) ( sizeof( arr ) / sizeof( *( arr ) ) )
int main( )
{
char buf[ 15 ] = "aacdefghijklmn";
char search_to[ ] = { 'a', 'c', 'd', 'f', 'g' };
for ( auto i = 0; i < ARRAYSIZE( buf ); i++ )
{
for ( auto j = 0; j < ARRAYSIZE( search_to ); j++ )
{
if ( buf[ i ] == search_to[ j ] )
{
std::cout << "found " << buf[ i ] << " at " << i << " index, address: " << reinterpret_cast< void* >( &buf[ i ] ) << std::endl;
}
}
}
}
Текст введенный пользователем.Так что в ней будет и что найти нужно?
Скорее всего неправильно проверяешь на вхождение в строке с помощь strstr.not work
custom*Я уже это решил по средствам создания собственного флага.
Для тех кто использует имгуи:
Посмотреть вложение 190740C++:if (flags & ImGuiInputTextFlags_Castom) if (!(c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9')) return false;
Это название сделано исключительно для проверкиcustom*
вряд ли ты его бы изменил, если бы я не ответилЭто название сделано исключительно для проверки
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz