当前位置: 代码迷 >> C语言 >> 简单指针问题 (为什么有乱码?)
  详细解决方案

简单指针问题 (为什么有乱码?)

热度:111   发布时间:2006-12-06 14:48:50.0
简单指针问题 (为什么有乱码?)

菜鸟问题啊~~请各位高手们能花几分钟救救~~
使用指针代替下标编程:输入一个字符串,将最后一个字符变为字母"X"输入输出示例:

abcde
abcdx
我是这么写的``可是输出结果是乱码```都不知道是哪里出错了``~

#include<stdio.h>

main()
{ char a[10],*p;

scanf("%s",p);
for(p=a;*p!='\0';p++)
if(p=='\0')
p--;
*p='x';

printf("%s\n",a);
getch();

}

搜索更多相关的解决方案: 指针  乱码  getch  printf  scanf  

----------------解决方案--------------------------------------------------------
以下是引用mahdi在2006-12-6 14:48:50的发言:

菜鸟问题啊~~请各位高手们能花几分钟救救~~
使用指针代替下标编程:输入一个字符串,将最后一个字符变为字母"X"输入输出示例:

abcde
abcdx
我是这么写的``可是输出结果是乱码```都不知道是哪里出错了``~

#include<stdio.h>

main()
{ char a[10],*p;
p = a;

scanf("%s",p);
for(p=a;*p!='\0';p++)
if(p=='\0')
p--;//现在是在'\0'位置,需在减1。
*p='x';

printf("%s\n",a);
getch();//没有包含头文件conio.h

}


----------------解决方案--------------------------------------------------------
指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。”
使用指针一定要初始化。
因此要加上“p = a;”
----------------解决方案--------------------------------------------------------

以下是引用mahdi在2006-12-6 14:48:50的发言:

菜鸟问题啊~~请各位高手们能花几分钟救救~~
使用指针代替下标编程:输入一个字符串,将最后一个字符变为字母"X"输入输出示例:

abcde
abcdx
我是这么写的``可是输出结果是乱码```都不知道是哪里出错了``~

#include<stdio.h>

main()
{ char a[10],*p=a;

scanf("%s",p);
for(;*p!='\0';p++) ;
/* if(p=='\0')*/ /*因为 只有p不为空才会执行循环,所以这个不会执行*/
p--;
*p='x';

printf("%s\n",a);
getch();

}


----------------解决方案--------------------------------------------------------

  相关解决方案