#include <stdio.h> #include <string.h> int main(void) { char str[101]; //可以大点 int k = 0; gets(str); //gets因该是有风险 scanf("%d",&k); for(int i=0; i<k; i++) //一个个输出 printf("%c", str[i]); return 0; }

也有说是直接在k位置'\0' 作为字符串的结尾输出原字符串,作为这个题目是没错但是 保存在内存里的后面的字符会被清空吗?