【发布时间】:2013-05-09 22:24:28
【问题描述】:
我是 C 新手,正在尝试创建一个检查字符串并返回最后一个字符的函数。
我得到了打印正确字母的功能,但我不知道如何返回它:/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char last_chr(char *c);
int main (int argc, const char * argv[]) {
char *text[15];
strcpy(text, "*find:last;char#");
last_chr(text); //debugging
//printf("last char: %c", last_chr(text)); //not working
return 0;
}
char last_chr(char *c) {
char *endchr;
char result;
int pos = strlen(c)-1;
endchr = c[pos];
//sprintf(result,"%s",endchr); //"EXEC_BAD_ACCESS"
putchar(endchr); //prints #
//putc(endchr, result); //"EXEC_BAD_ACCESS"
//printf(endchr); //"EXEC_BAD_ACCESS"
return result;
}
【问题讨论】:
-
endchr = c[pos];不是也给你一个错误吗? -
这只会给我一个警告:“赋值使指针从整数不进行强制转换”
-
永远不要忽略警告。除非你有一个非常好的理由。即使这样,也要修复它。当您弄乱指针时,忽略此警告尤其危险。使其指向随机数据。提示:如果您使用 GCC,请使用
-Wall -pedantic编译。