利用指针赋值的问题
本帖最后由 fc1735 于 2016-10-29 14:28 编辑#include <stdio.h>
int main()
{
char a;
char* b = a;
*b++='Y';
*b++='O';
*b++='U';
*b++='\0';
printf("%s",b);
return 0;
}
上边代码哪里出错了,不懂编译执行后为何不是想要的结果。{:10_266:} {:10_266:} 你确定找不到哪里出了问题?
#include <stdio.h>
int main()
{
char a;
char* b = a;
*b++='Y';
*b++='O';
*b++='U';
*b++='\0';
// printf("%s",b);
printf("%s",a);
return 0;
}
抱歉没看清楚 {:10_284:}
其实是在S1E22的课后作业有一题一直没办法实现,才到处尝试是不是有什么地方是代码本身就出问题的。
实现strcpy函数的:
不知哪里出错
#include<stdio.h>
#define Max 100
int main()
{
char a[(Max+4)];
char b;
int n;
printf("I'll demonstrate the strcmp function.\nEnter the first sentence.\n:");
fgets(a,Max,stdin);
printf("Enter the second sentence that u want to be compared with the previous one.\n");
fgets(b,Max,stdin);
printf("Now, enter the total number of charactor u want to compare with.");
scanf("%d",&n);
n=strcmp_n(a,b,n);
if (n>0)
{
printf("%d",n);
if (n-1>0) printf("\nWhich is right after %s",(a+100));
}
else printf("Former %d words are equal.",(-n));
return 0;
}
int strcmp_n(char* i,char* j,int k)
{
int m=1;
while ((*i==*j++)&& k--&& *i)
{
if (*i++<0)
{
if (*i!=*j) goto ret;
if (*(i+1)!=*(j+1)) goto ret;
i+=2;
j+=2;
}
m++;
}
if (k==-1||*i == 0) return (1-m);
ret: j-=2;
if (*j<0)
{
j-=2;
*(i+100)=*j++;
*(i+101)=*j++;
*(i+102)=*j;
*(i+103)='\0';
}
else
{
*(i+100)=*j;
*(i+101)='\0';
}
return m;
}
本帖最后由 fc1735 于 2016-10-29 23:47 编辑
fc1735 发表于 2016-10-29 23:28
抱歉没看清楚
其实是在S1E22的课后作业有一题一直没办法实现,才到处尝试是不是有什么地方是 ...
我看到了,是同一个问题,那没事了,一定是最近太累了... 我把帖设成已解决吧,感谢大神的帮助{:10_254:}{:10_254:} fc1735 发表于 2016-10-29 23:45
我看到了,是同一个问题,那没事了,一定是最近太累了... 我把帖设成已解决吧,感谢大神的帮助{:10_254 ...
#include <stdio.h>
int main()
{
char a;
char* b = a;
*b++='Y';
*b++='O';
*b++='U';
*b++='\0';
printf("%s",b);赋完值后,指针b已经指到了末尾,并不是从头开始指的,把这句改成printf("%s",a);
return 0;
}
{:5_91:}
页:
[1]