我正在为我的考试编写一个C程序,我正面临一些问题。 例如,在本练习中:
char y = 'a';
if (y >= 65)
printf("MAJOR");
或:
char a[] = "bare";
if (a[0] >= 65)
printf("MAJOR");
我真的想打印MAJOR
,但我总是收到错误。
我的目标是查看我的char
数组的元素是主要的还是等于指定的ASCII值(65
是'A'
)。
我还有一个实际需要在char
数组中移动的指针:如何将其滚动到'\0'
?
我尝试过:
for (i = 0 ; &p->info[i] != '\0' && &s[i] != '\0'; i++)
// the info field of this struct is type char *
info
为char*
且s
为char s[]
。
这个for循环好吗?
编辑:新问题
我真的很奇怪我试图运行这行代码时遇到了一般错误:
char y = 'a';
似乎我的'y'变量填充了下划线而不是'a'....? 我现在正在使用Xcode
答案 0 :(得分:3)
我相信,如果您要检查空终止,则需要更改
&p->info[i] != '\0' && &s[i] != '\0'
到
(p->info[i] != '\0') && (s[i] != '\0')
因为\0
是值,而不是地址。
编辑:
我仍然不太确定,但也许你想要实现类似下面的东西。它为CAPS字母分析整个数组,如果找到,则打印“MAJOR”。
的伪代码:
char arr[] = "bAre";
int len = strlen(arr);
for (int counter = 0; counter < len; counter++)
{
if ( (arr[counter] >= 'A') && (arr[counter] <= 'Z')) //need ending condition also
printf("MAJOR\n");
}
此处有点注意事项:如果您不限制'Z'
处的检查,则值'a'
也会满足>= 65
。
答案 1 :(得分:1)
首先,小写字母大于大写字母,'a'(97)大于'A'(65),所以在你的代码中,'a'似乎也是'MAJOR'。
所以如果你想获得'MAJOR',你应该使用
char y = 'a';
if (y >= 'A' && y <= 'Z')
{
printf("MAJOR");
}
接下来,info是char *,s是char s [],所以你需要更改
&p->info[i] != '\0' && &s[i] != '\0'
到
(p->info[i] != '\0') && (s[i] != '\0')
因为,
\ 0是一个值,而不是一个地址......
infor [i]和s [i]都是char ...
答案 2 :(得分:1)
你也可以这样做 -
setTimeout(function () {
$("#multipleIframe iframe").each(function () {
var heightIframe;
heightIframe = $(this).contents().height();
console.log(heightIframe);
$(this).css({
"height": heightIframe + "px"
});
})
}, 3000);