程序已经帮你改好
#include
#include
void zhaoweizhi(char*p,int n,char s); //找位置函数声明
void main()
{
int n,i=0;
char *p=NULL,m;
printf("请输入字符串中字符的个数:");
scanf("%d",&n);
//p=(char*)malloc(n*sizeof(int)); /*向内存申请数组的内存空间*/
p=(char*)malloc((n+1)*sizeof(char)); /*你应该申请 char 字节的内存,否则使用 int 会浪费内存空间,申请 n+1 会给系统自动添加的 \0 也同时申请,否则字符串结束位置可能会出错 */
if(p==NULL)
{
printf("没有足够的内存空间");
exit(0);
}
printf("请输入这个字符串:"); /*输入元素的初始值*/
/*
for(i=0;i
*/
scanf("%s",p);
printf("你输入的字符串为:");
printf("%s\n",p);
/*
for(i=0;i
*/
getchar(); /*使用 scanf 输入字符 会把 回车符号也加进去,导致你无法输入 正确却的字符 使用 getchar() 接受回车 */
printf("请输入你要查找的字符:");
scanf("%c",&m);
zhaoweizhi(p,n,m); //运用找位置函数
delete p; //动态申请的内存需要 最后 释放
}
void zhaoweizhi(char*p,int n,char s)
{
int j,sigma=0;
int flag = 0; //使用标志判断即可
for(j=0;j
if(s==p[j])
{
printf("你输入的这个字符在字符串中为第%d个\n",j+1);
flag = 1;
break;
}
}
if(!flag)
{
printf("-1\n");
}
/* 冗余
for(j=0;j
if(s!=p[j])
sigma+=1;
}
if(sigma==n)
printf("-1");
*/
}
#include
#include
void zhaoweizhi(char*p,int n,char s); //找位置函数声明
void main()
{
int n,i;
char *p=NULL,m;
printf("请输入字符串中字符的个数:");
scanf("%d",&n);
p=(char*)malloc(n*sizeof(char));
/*向内存申请数组的内存空间*/
if(p==NULL)
{
printf("没有足够的内存空间");
exit(0);
}
printf("请输入这个字符串:"); /*输入元素的初始值*/
for(i=0;i
fflush(stdin); //输不进去?要清空scanf的缓存
scanf("%c",p+i);
printf("%x\n",p+i);
}
printf("请输入你要查找的字符:");
fflush(stdin);
scanf("%c",&m);
zhaoweizhi(p,n,m); //运用找位置函数
}
void zhaoweizhi(char*p,int n,char s)
{
int j,sigma=0;
for(j=0;j
if(s==p[j])
printf("你输入的这个字符在字符串中为第%d个",j+1);
}
for(j=0;j
if(s!=p[j])
sigma+=1;
}
if(sigma==n)
printf("-1");
}
申请空间时怎么用sizeof(int)