扫描字符串格式

问题描述:

我做了一个代码,应该采取stdin并确保它是真实的,这取决于我的scanf格式。扫描字符串格式

下面是代码

#include <stdio.h> 

int main() 
{ 
    int i; 
    char* a; 
    i = 0; 
    while (1 == scanf("/%[^/ \t\n]", a[i++])) 
     printf(">%s<\n", a[i-1]); 

    return 0; 
} 

样本输入:

/test 

输出样本:

/test 
Segmentation fault 

我不知道是什么原因造成分段错误

+1

'炭STR [32]; char * a = str; i = 0; while(1 == scanf(“/%[^/\ t \ n]”,a)) printf(“>%s BLUEPIXY

+0

一个好的开始是使用调试器找出崩溃发生的位置。 – Olaf

+0

@BLUEPIXY a必须是它是如何,这是一个要求。 –

你需要亲请提供char *的地址,scanfprintf函数,但您提供的是相同的元素。此外,您需要分配内存到char *a

char *a = malloc(15*sizeof(char)); 
while (1 == scanf("/%[^/ \t\n]", a)) 
    printf(">%s<\n", a); 

输出:

>test<