首页 > 解决方案 > 尝试根据字符在字母表中的位置将字符串的元素转换为数字

问题描述

我正在尝试获取字符串char theString[256] = "BreakfastLunchDinner";并根据每个字符在字母表中的位置将其转换为一个数字,即 B = 2、f = 6、l = 12 等。

到目前为止,这是我的代码:

void main()
{
    char theString[256] = "BreakfastLunchDinner";
}

void firstLast(char theString[], char *first, char *last)
{
    int i = 0;
    int num[256];

    while(theString != '\0')
    {
            if(theString[i] >= 'A' && theString[i] <= 'Z')
            {
            num[i] = theString[i] - 'A';
            }
            else if(theString[i] >= 'a' && theString[i] <= 'z')
            {
            num[i] = theString[i] - 'a';
            }
            i++;
    }
}

我在 main 函数中包含了声明以尝试尽可能详细,指针供以后使用,我目前专注于上面解释的转换方面。当我尝试在单独的程序中单独运行“firstLast”函数时,我得到了从编译器转储的分段错误核心。非常感谢任何帮助,谢谢。

标签: carraysstring

解决方案


由于theString永不改变,循环将永远不会终止,并且theString[i]可能会冒险离开它不应该去的地方,从而导致段错误。

你的测试应该是theString[i] != '\0'.


推荐阅读