从字符串错误中获取某个字符?

时间:2020-03-01 11:31:22

标签: c

我正在尝试获取字符串的第n个字符。我目前正在使用这个:

char ch = Word[n];

但是,当我构建它时,它给了我以下错误:

错误:下标值既不是数组,也不是指针,也不是向量

我很困惑为什么会有这个错误!

我的整个代码是:

#include <stdio.h>
#include <string.h>

#define alpha[] [a b c d e f g h i j k m n o p q r s t u v w x y z]

hash(Word){
     char hashed;
    int t, length;
    length = strlen(Word);
    for (t; length; ++t) {
         char ch = Word[t];
         if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
         {
            int position alpha[ch];
            ch += 9;
            strncat(hashed, &ch, 1);
         }
         else if(ch >= '0' && ch <= '9')
         {
             ch*=2;
             char letter alpha[ch];
             strncat(hashed, &ch, 1);
         }
         else
         { 
             strncat(hashed, &ch, 1);
         }
         printf("%s/n", hashed);
     }
     return hashed;
}

main(){
     printf("Please enter your string to hash: ")
     scanf("%s", WordToHash)
     char* HashedWord
     HashedWord = hash(WordToHash)
     printf("/nYour hashed word is %s", HashedWord)
}

我的编译器是在manjaro中通过AUR安装code :: blocks时预先安装的基本编译器。

顺便说一下,我是C的新手(我昨天才上学)!

谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道这是什么类型的C,但是肯定看起来不像标准C。 C是强类型语言。您必须先声明变量的类型,然后再使用它。 同样,函数需要具有返回类型。 在您的情况下,您应该替换

hash(Word){

使用

char* hash(char* Word){

我还在您的代码中看到了一些其他奇怪的东西,这些东西在C语言中不起作用/无法编译。 我的建议是先掌握基础知识,然后再回到本示例。

相关问题