C语言字符指针怎么输入?谢谢
#include"string.h"
main()
{char *string;
(怎么通过键盘输入字符串给string???)
printf("%s\n",string);
} 展开
例:
#include"stdio.h"
#include"stdlib.h"
main()
{
char*p[10],*temp;
inti,j,k;
for(i=0;i<10;i++)
{
p[i]=(char*)malloc(sizeof(char)*50);//开辟内存
}
for(i=0;i<10;i++)
{
printf("输入第%d本书的书名\n",i+1);
gets(p[i]);
}
for(i=0;i<10;i++)
{
printf("%s\n",p[i]);
}
}
扩展资料
C语言字符数组和字符串的使用
用来存放字符的数组称为字符数组,例如:
char c[10];
字符数组也可以是二维或多维数组。例如:
char c[5][10];
字符数组也允许在定义时进行初始化,例如:
char c[10]={'c', ' ', 'p', 'r','o', 'g', 'r', 'a','m'}; // c[9]未赋值,所以为默认值’\0’
当对全体元素赋初值时也可以省去长度说明。例如:
char c[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' };
这时c数组的长度自动定为9。
字符数组和普通数组一样,也是通过下标引用各个元素。
可以参考下面的代码:
#include <stdio.h>
#include <string.h> // 要用尖括号
int main()
{
char *str;
str = (char*)malloc(sizeof(char) * 20); // 申请20个char长度的空间
scanf("%s", str); //输入
printf("%s\n", str); // 输出
free(str); // 释放空间
return 0;
}
扩展资料:
字符指针注意事项:
在字符指针中p是指针变量指向字符串首元素(前提对p指针没有进行指针操作),p中存放首元素的地址(一旦被初始化就,系统就为我们分配好了地址,而且地址也不能改变,因为字符指针是一个只读变量,不能企图对一个初始化好的指针进行内部修改)
而*p是对指针变量p进行解引用操作,也就是指针所指向的内容,而&p是对指针变量取地址,所以也就肯定不会和p的值相等,因为字符指针系统会为其分配内存,p的值是字符串首元素的地址。
参考资料来源:百度百科-c语言
首先string是系统保留字,不建议使用,换个名字吧,比如str
其次你这个只有指针,没有开辟空间,是不能存储的。
#include <stdio.h>
#include <string.h> // 要用尖括号
int main()
{
char *str;
str = (char*)malloc(sizeof(char) * 20); // 申请20个char长度的空间
scanf("%s", str); //输入
printf("%s\n", str); // 输出
free(str); // 释放空间
return 0;
}