h-b-z-d-j-s-m 发表于 2022-10-16 17:27:12

赋值

#include<ctype.h>
#include<stdio.h>
#include<string.h>
void fun(char *p)
{
        int i,t;
        char ts;
        for(i=0,t=0;p!='\0';i+=2)
                if(!isdigit(*p+i)&&(*(p+i)!='a'))
                        ts=toupper(p);
        ts='\0';
        strcpy(p,ts);
}
int main()
{
        char str={"a1b2c3d4ef5g"};
        fun(str);
        puts(str);
        return 0;
}
为什么5也被赋值了,当p指向5时循环条件里if不符合,为什么5会被赋值过去

jackz007 发表于 2022-10-16 17:48:17

本帖最后由 jackz007 于 2022-10-16 18:06 编辑

      问题出在第 9 行:
                if(!isdigit(*(p+i))&&(*(p+i)!='a'))// !isdigit(*p+i) 应为 !isdigit(*(p+i))
页: [1]
查看完整版本: 赋值