我一直试图让这段代码用ROT13加密来加密*char[]
指针数组。几个问题:
这是我的代码:
void rot13(int numlines, char * text[]){
//printf("%s\n", text);
//char encrypted[length(text)];
for (int i=0; text[i]>='\0'; i++){
if (*text[i]>='A' && *text[i]<='Z'){
*text[i]=(((*text[i]-'A')+13)%26 + 'A');
}else if(*text[i]>='a' && *text[i]<='z'){
*text[i]=(((*text[i]-'a')+13)%26 + 'a');
}
}
printf ("%d\n ",*text);
}
int main(){
char text1[]="parliament";
char * text[]=&text1;
rot13(10, text);
}
答案 0 :(得分:2)
在char * text[]=&text1;
中,text
被声明为指向char
的指针数组。因此是一种数组类型。它不能在不使用花括号的情况下进行初始化(例外:字符串文字)。最好将其声明为指向char
char **text = &text1;
您应该注意char * text[]
和函数参数中的声明main
不相同。声明为函数参数时,char * text[]
等同于char **text
。