Я боюсь, что нет простого решения относительно изменения размера шрифта. Вы можете изменить размер шрифта, используя медиа-запрос, но технически он не будет изменяться без изменений. Например, если вы используете:
@media only screen and (max-width: 320px){font-size: 3em;}
Размер шрифта будет 3em как для ширины 300px, так и 200px. Но вам нужен более низкий размер шрифта для ширины 200 пикселей, чтобы обеспечить отличную реакцию.
Итак, каково реальное решение? Есть только один способ. Вы должны создать изображение png (с прозрачным фоном), содержащее ваш текст. После этого вы можете легко реагировать на изображение (например: ширина: 35%, высота: 28 пикселей). Таким образом, ваш текст будет полностью отвечать всем устройствам.
Хотя вы, вероятно, знаете, char * [] - это массив указателей на символы, и я предполагаю, что вы хотите сохранить несколько струны. Инициализировать массив таких указателей так же просто, как:
char ** array = new char *[SIZE];
... или, если вы выделяете память в стеке:
char * array[SIZE];
Тогда вы, вероятно, захотите заполнить массив циклом, например:
for(unsigned int i = 0; i < SIZE; i++){
// str is likely to be an array of characters
array[i] = str;
}
As отмечено в комментариях к этому ответу, если вы выделяете массив с новым (динамическое размещение), не забудьте удалить свой массив с помощью:
delete[] array;
В зависимости от того, что вы хотите инициализировать, вы можете сделать любое из:
char mystr[] = {'h','i',0};
char * myotherstring = "my other string";
char * mythirdstring = "goodbye";
char * myarr[] = {0};
char * myarr[] = {&mystr, myotherstring};
char * myarr[10];
char * myarr[10] = {0};
char * myarr[10] = {&mystr, myotherstring, mythirdstring, 0};
и т. Д. и т.д.
Вот так:
char p1 = 'A';
char p2 = 'B';
char * t[] = {&p1, &p2};
std::cout << "p1=" << *t[0] << ", p2=" << *t[1] << std::endl;
Но почему-то я считаю, что это не ответ на реальный вопрос ...
Если вы хотите, чтобы массив строк C определялся во время компиляции, вы должны использовать вместо него массив const char *:
const char * t2[] = {"string1", "string2"};
std::cout << "p1=" << t2[0] << ", p2=" << t2[1] << std::endl;
Без const мой компилятор сказал бы: предупреждение: не рекомендуется преобразование из строковой константы в 'char *'
#include <iostream>
int main(int argc, char *argv[])
{
char **strings = new char *[2]; // create an array of two character pointers
strings[0] = "hello"; // set the first pointer in the array to "hello"
strings[1] = "world"; // set the second pointer in the array to "world"
// loop through the array and print whatever it points to out with a space
// after it
for (int i = 0; i < 2; ++i) {
std::cout << strings[i] << " ";
}
std::cout << std::endl;
return 0;
}
Как и любой другой массив:
char *a, *b, *c;
char* cs[] = {a, b, c}; // initialized
cs[0] = b; // assignment
Вот так:
char* my_c_string;
char* x[] = { "hello", "world", 0, my_c_string };
Если вам действительно нужен массив постоянных строк в стиле C (например, индексированные сообщения):
const char* messages[] =
{
"Beginning",
"Working",
"Finishing",
"Done"
};
Если же вы пытаетесь поддерживать контейнер переменных строк во время выполнения, то использование средств C++ std::vector
значительно упростит учет всех операций с памятью.
std::vector<std::string> strings;
std::string my_string("Hello, world.")
strings.push_back("String1");
strings.push_back(my_string);