Код должен посчитать сколько введен каждый символ в строке, строку сам задаешь
unsigned count[256];
memset(count, 0, sizeof(count));
// Считаем количество символов
for(int i=0; a[i] != '\0'; ++i) {
++count[a[i]];
}
// вывод
for(int i=0; i < 256; ++i) {
if(count[i] > 0)
printf(" %c=%d\n ", (char)i, count[i]);
}
Похоже, что служебные символы в переменных цикла (в отличие от таковых в аргументах командных файлов и переменных окружения) экранирования и не требуют
L"" + a
Может надо просто инициализировать a пустой строкой в начале? ... а если у меня, например,
я этим просто обещаю компилятору, что именно сам this не буду менять
Не могут подключиться, потому что у "родных" ключей и у ваших разные ключи центра сертификации (ca.key, ca.crt). Именно эти ключи объединяют все другие ключи между собой. И правильность ключей клиента и сервера проверяется с помощью ключей CA.
Именно поэтому к вашему серверу не может подключиться кто угодно просто сгенерировав у себя любые ключи - у него нет ваших ключей CA. Для генерации новых ключей, требуется приватный ключ CA (ca.key) и его надо держать в секрете, если не хотите, что бы вас сломали в один прекрасный день.
Сам по себе ключ ca.key используется только при генерации других сертификатов. Этот ключ не нужен на работающем OpenVPN сервере и клиентах. В остальных случаях используется его публичный сертификат ca.crt, который как раз можно распространять на право и на лево.
Вам надо что-то почитать про инфраструктуру открытых ключей (PKI) и X.509.