C - 使用scanf将字符串扫描到数组

时间:2016-11-03 14:55:44

标签: c arrays string visual-studio-2015 scanf

我正在尝试制作一个程序,该程序使用一个 scansf 函数立即获取某个人的全名,并将每个字母存储在一个数组的一层中。 例如,如果输入的名称是“tim”,它应该怎么做:

 array[0]=t
 array[1]=i
 array[2]=m
 array[3]=\0

我已经在其他威胁中读过这个但它不起作用:

#include <stdio.h>

int main(void) {
    char array[256];
    scanf_s("%s", array);
    printf_s("%s", array);
    return 0;
}

它会显示以下错误消息:

enter image description here

  

英文:
  执行在0x0FAA0B5C处触发   写入位置0x01300000时的访问冲突

是否可以使用 scanf 功能,如果是,如何? 或者有更好的选择吗?

感谢您添加缓冲参数工作
代码:

#include <stdio.h>
#include "stdafx.h"

int main(void) {
    char array[256];
    scanf_s("%255s", array, 256);
    printf("%s", array);
    return 0;
}

3 个答案:

答案 0 :(得分:1)

只需使用scanf

vectorize_all = FALSE

答案 1 :(得分:1)

可以在没有scanf的情况下使用_s。 E.g:

scanf("%s",array);
printf("%s\n", array);

答案 2 :(得分:0)

如果您想使用scanf_s,请查看here