2010-10-02 3 views

ответ

7

Вы должны сделать:

printf("%c \n", x[0]); 

format specifier для печати полукокса является c. Таким образом, строка формата, которая будет использоваться, - %c.

Для доступа к элементу массива по действующему индексу i необходимо указать array_name[i]. Вы не должны использовать &. Использование & даст вам адрес элемента.

+0

Это сделало трюк! – Kay

4

Не должно быть доступа x[0]?

Нет, потому что & в &x[0] получает адрес первого элемента строки (так что это эквивалентно просто используя x.

%s будет выводить все символы в строке видит нулевой символ в конец строки (который является неявным для текстовых строк).

для того, чтобы распечатать символ, а не всю строку, используйте формат символа спецификатора %c вместо этого.

Отметьте, что printf("%s \n", x[0]); недействителен, так как x[0] имеет тип char и %s ожидает char *.

+0

Большое спасибо, я ценю вашу помощь :) – Kay

+3

@Kay, вместо того, чтобы разместить комментарий о том, «Большое спасибо», попробуйте нажать стрелку вверх рядом с поста. Кроме того, нажмите галочку рядом с тем, какой из них является лучшим ответом. –

3
#include <stdio.h> 

int main(void){ 
    char x [] = "hello world."; 
    printf("%c \n", x[0]); 
    return 0; 
} 
+0

Большое спасибо Пол :) – Kay

2

Строка в C представляет собой массив символов с последним символом, который является символом NULL '\ 0'. Когда вы используете спецификатор строки «% s» в printf, он начнет печатать символы по указанному адресу и продолжит работу до тех пор, пока не ударит нулевой символ. Для печати одного символа вместо этого используйте строку формата% c.

0

Поскольку строка в C представляет собой массив символов. Это утверждение напечатает первый символ.

printf("%c \n", "hello world."[0]); 
Смежные вопросы