当我尝试打印文件的每个字符时,我会出现分段错误。我不明白为什么。
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]);
}
}
}
答案 0 :(得分:2)
如果要打印字符串的每个字符,则应使用%c
而不是%s
。
printf("%c\n", file[i]);
此外,
使用printf("%s", ..)
打印字符串时,需要传递字符串所在的地址,而不是地址的内容。
因此,对于char* str = "hello"
,print语句将是
printf("%s\n", str);
而不是
printf("%s\n", str[0]);