isalpha函数的细节问题(if的判断)

写一个程序将字符变为字母表后第4个字母,用isalpha函数的细节,if()那一步是什么意思呢?

img

C 库函数 void isalpha(int c) 检查所传的字符是否是字母。
声明:int isalpha(int c);
参数:c -- 这是要检查的字符。
返回值:如果 c 是一个字母,则该函数返回非零值,否则返回 0。
if(!isalpha(s[i])) 这句的意思:判断s[i]如果不是字母字符,则把 s[i]-=26.比如假设s[i] = 'x', s[i] +4 = 超出字母表的字符了,此时 isalpha(s[i]) ==0 , if(!0)成真,把s[i] = s[i]-26 = 字母表中的 ‘b'.