c语言如何只允许用户输入一个字符

Python018

c语言如何只允许用户输入一个字符,第1张

方法一:

//输入任意个字符串

#include

#include

#include

#define LINE 5

int main()

{

int i = 0, n = LINE

int l, len

char **str

char buf[256]//每个字符串256个字符够吗?

//分配原始内存大小

if (NULL == (str =(char **)malloc(sizeof(char*)*n)))

{

fprintf(stderr, "can not malloc(%d*%d)\n", sizeof(char*), n)

return 1

}

printf("请输入字符串:(字符串间换行,两个换行结束输入)\n")

while (1)

{

//输入字符串

fgets(buf, 100, stdin)

if ('\n' == buf[0]) break//读入空行,结束

//内存已满,扩充

if (i == n)

{

n += LINE

if (NULL == (str =(char **) realloc(str, sizeof(char*)*n)))

{

fprintf(stderr, "can not realloc(%d*%d)\n", sizeof(char*), n)

return 1

}

}

len = strlen(buf)

buf[len - 1] = 0//去'\n'

if (NULL == (str[i] =(char *)malloc(len - 1)))

{

fprintf(stderr, "can not malloc(%d)\n", len - 1)

return 1

}

strcpy(str[i], buf)

i++

}

//打印

printf("\n 你输入的字符串是:\n")

for (l = 0l <il++)

printf("%s\n", str[l])

system("pause")

return 0

}

方法二:

#include

#include

#include

#include

int main()

{

char *str=NULL,**strs=NULL,*p

unsigned int str_size=0,strs_size=0,i

do

{

char *tmp=(char*)realloc(str,++str_size*sizeof(char))

if(!tmp)

{

free(str)

fputs("out of memory",stderr)

return 1

}

str=tmp

str[str_size-1]=getchar()

}while(str[str_size-1]!='\n')

str[str_size-1]=0

for(p=strtok(str," \t")pp=strtok(NULL," \t")) {

char **tmp=(char**)realloc(strs,++strs_size*sizeof(char*))

if(!tmp)

{

free(str)

free(strs)

fputs("out of memory",stderr)

return 1

}

strs=tmp

strs[strs_size-1]=p

}

for(i=0i

printf("%u:%s\n",i+1,strs[i])

free(strs)

free(str)

return 0

}

c语言从键盘输入字符串的步骤如下:

1.首先我们新建一个dev C++的项目。

2.接下来在项目中新建C语言程序文件。

3.然后在C语言文件中声明一个字节数组

4.接下来我们通过printf函数提示用户输入字符串,通过scanf接收用户输入的字符串。

5.接着在通过printf函数输出用户输入的内容。

6.最后运行C语言程序,我们输入内容以后就可以输出了。这样就解决了c语言从键盘输入字符串的问题了。

在C语言中实现用键盘输入一个字符串,并打印出来的解决方法如下:

1、首先定义一个字符串数组,如你可以给字符串100个数组空间。如图括号内数字即为你定义的数组大小。

2、gets()函数用来获取键盘输入的字符串,括号内的s即为字符串变量。

3、接着用puts()函数输出之前我们从键盘读取的字符串。括号内为字符串数组的名字,要与前面的保持一致。

4、然后点击运行,得到以下结果即为正确。

扩展资料:

字符数组的输出:

(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a[10]:用putchar()赋值:

for(i=0i<10i++)

a[i]=putchar()

用printf()赋值:

for(i=0i<10i++)

printf("%c",a[i])

输出结果为:

c program [2]

(2)用printf()的'%s'格式对数组赋值。还是对于数组a[10]

printf("%s",a)

输出结果为:

c program

参考资料来源:

百度百科-char

百度百科-字符数组