#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char* elem;
int length;
}Str;
void init(Str* p){
p->elem=NULL;
p->length=0;
}
void put(Str* p,char* q){//赋值
int len=strlen(q);
p->elem=(char*)malloc(sizeof(char)*len);
for(int i=0;i<len;i++){
p->elem[i]=q[i];
}
}
void print(Str* p){
for(int i=0;i<p->length;i++){
printf("%c",p->elem[i]);
}
}
int main()
{
Str str;
init(&str);
char str1;
scanf("%s",&str1);
put(&str,&str1);
print(&str);
return 0;
}
这段代码中,scanf("%s",&str1);
应该改为 scanf("%c", &str1);
。因为 scanf
函数用于读取字符,而不是字符串。所以在这里应该使用 %c
格式说明符来读取一个字符。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢