问题描述
- 这个bug在哪里,如何为字符型指针数组赋值呢?
-
程序如下:#include<stdio.h> #include<string.h> main() { char *a[2]; char *d; printf("请输入两个字符串:"); scanf("%s%s",a[0],a[1]); if(strcmp(a[0],a[1])>0) {d=a[0];a[0]=a[1];a[1]=d;} printf("%s ",a); }
解决方案
指针数组没初始化
#include<stdio.h>
#include<string.h>
void main()
{
char str1[80],str2[80];//修改
char *a[2];
char *d;
a[0]=str1; a[1]=str2;//修改
printf("请输入两个字符串:");
scanf("%s%s",a[0],a[1]);
if(strcmp(a[0],a[1])>0)
{d=a[0];a[0]=a[1];a[1]=d;}
printf("%s
",a[0]);//修改
}
解决方案二:
字符型的数组与指针
字符数组和 字符型指针
解决方案三:
应该这样,动态开辟内存两个字符串,每个长度为99,当然你也可以自定义长度,然后就可以进项下面的运算了
#include
#include
int main()
{
char **a;
a=new char*[2];
a[0]=new char[100];
a[1]=new char[100];
char *d;
printf("请输入两个字符串:");
scanf("%s%s",a[0],a[1]);
if(strcmp(a[0],a[1])>0)
{d=a[0];a[0]=a[1];a[1]=d;}
printf("%s
",a);
delete []a;
return 0;
}
时间: 2024-09-02 14:36:55