|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main(void)
{
char str[200] = {'\0'};
int sum = 0,k=0;
char *p;
p = &str;
printf("请输入一行字符:");
scanf("%s", str);
while(*p != '\0')
{
if(*p >= '0' && *p <= '9') /*判断是否为数字*/
{
k=p-'0'; 得到数字和
sum+=k;
k=0;
}
p++;
}
printf("其中数字和=%d个\n",sum );
return 0;
}
为什么我程序没有错,但是我运行的时候是乱码。
不是我想要的结果
求各位大神指点。
本帖最后由 8306最硬 于 2018-1-15 21:07 编辑
- #include<stdio.h>
- int main(void)
- {
- char str[200] = {'\0'};
- int sum = 0,k= 0;
- char *p;
- p = str;
- printf("请输入一行字符:");
- scanf("%s", str);
- while(*p != '\0')
- {
- if(*p >= '0' && *p <= '9') /*判断是否为数字*/
- {
- k = *p -'0'; //得到数字和
- sum+=k;
- k=0;
-
- }
- p++;
- }
- printf("其中数字和=%d个\n",sum );
- return 0;
- }
复制代码
第8行,数组名相当于指针,所以赋值的时候不用再用取地址符&了
第15行,指针取值的时候要加*
(BTW)* 和& 互为逆运算
|
|