//输入任意个字符串
#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
百度百科-字符数组