Я не понимаю, как я получаю ошибку сегментации
Когда я пытаюсь напечатать каждый символ файла, я получаю ошибку сегментации. Я не понимаю почему.
void parseStringAndDelete(char *file)
{
// I a passing "drwxr-xr-x 1 ftp ftp 0 Mar 07 12:34 A_Folder"
// as an argument for the function
int i = 0;
int k = 0;
int len = strlen(file);
int startIndex = 0;
//printf("%s\n", file);
//printf("%d\n", len);
if(file[0] == 'd')
{
for(i = 0; i<len; i++)
{
printf("%s\n", file[i]);
}
}
}
1 ответ
Если вы хотите напечатать каждый символ строки, то вы должны использовать %c
и не %s
,
printf("%c\n", file[i]);
Дополнительно,
При печати строки с помощью printf("%s", ..)
вам нужно передать адрес, где находится строка, а не содержимое адреса.
Итак, для char* str = "hello"
распечатать заявление будет
printf("%s\n", str);
и не
printf("%s\n", str[0]);