我正在尝试获取字符串的第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的新手(我昨天才上学)!
谢谢!
答案 0 :(得分:1)
我不知道这是什么类型的C,但是肯定看起来不像标准C。 C是强类型语言。您必须先声明变量的类型,然后再使用它。 同样,函数需要具有返回类型。 在您的情况下,您应该替换
hash(Word){
使用
char* hash(char* Word){
我还在您的代码中看到了一些其他奇怪的东西,这些东西在C语言中不起作用/无法编译。 我的建议是先掌握基础知识,然后再回到本示例。