但是gets方法不太安全,特别在linux下会报警报
由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。
char s[80];
fputs(fgets(s,80,stdin),stdout);
}
执行 this is a test /输入/
this is a test /输出/
getchar 是获得单个字符,不过你可以通过循环得到字符串
for(i=0;i<5;i++)
{
c=getchar();
putchar(c);//输出
}import javautilScanner;
public class InputString {
public static void main(String[] args) {
Scanner s = new Scanner(Systemin);
String str = null;
Systemoutprintln("请输入您想输入的字符串:");
str = snext();
Systemoutprintln("您输入的是:");
Systemoutprintln(str);
}
}#include<stdioh>
int main()
{
char c[200] = {'\0'};
scanf("%s",c);
int i;
int sum = 0;
char max = '\0';
for(i = 0; i < 200; i++)
{
char buf = c[i];
int j;
int k = 0;
for(j = i; j < 200; j++)
{
if(c[j] == '\0')
break;
if(buf == c[j])
k++;
}
if(k > sum)
{
sum = k;
max = buf;
}
}
printf("%c出现的最多,出现了%d次\n",max,sum);
return 0;
}首先,导入javautil包。
import javautil;
然后,你需要新建一个读取标准输入(键盘)的扫描器对象。
Scanner in = new Scanner(Systemin);
现在,你可以从键盘输入字符串了。
String s = innextLine();
以上这一行把键盘输入的一行字符串读取到变量 s 中。
请看一个完整的简单示例:
import javautil;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(Systemin);
String s = innextLine();
Systemoutprintln(s);
}
}//问题1:
#include <stdioh>
int main(void)
{
char ch[500]={'\0'};
int i=0;
printf("请输入一组字符串:");
scanf("%s",&ch);
while (ch[i]!='\0')
{
i++;
}
do {
printf("%c",ch[--i]);
}while(i);
printf("\n望采纳\n");
return 0;
}
//问题二请稍候
//问题2:
#include <stdioh>
int main(void)
{
int num[500];
int i=0;
int sum=0;
float p=0;
do{
printf("(输入-1表示结束输入)请输入数%d:",i+1);
scanf("%d",&num[i]);
fflush(stdin);
}while(num[i++]!=-1);
i=0;
while(num[i]!=-1)
{
sum=sum+num[i++];
}
p=sum/(float)i;
printf("你输入的数组平均值为:%2f\n",p);
i=0;
printf("其中数组内的以下数值小于平均值:");
while(num[i]!=-1)
{
if (num[i]<p)
printf("%d ",num[i]);
i++;
}
printf("\n");
return 0;
}
//望采纳
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)