将字符串元素与ASCII值进行比较

时间:2015-05-28 15:13:43

标签: c string char

我正在为我的考试编写一个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 *

infochar*schar s[]

这个for循环好吗?

编辑:新问题

我真的很奇怪我试图运行这行代码时遇到了一般错误:

char y = 'a';

似乎我的'y'变量填充了下划线而不是'a'....? 我现在正在使用Xcode

3 个答案:

答案 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);