C 查找最后一个字符
我是C新手,尝试创建一个检查字符串并返回最后一个字符的函数C 查找最后一个字符,c,char,C,Char,我是C新手,尝试创建一个检查字符串并返回最后一个字符的函数 #include <stdio.h> #include <string.h> char last_chr(char *c); int main (int argc, const char * argv[]) { char text[32];//char *text[15] strcpy(text, "*find:last;char#");//length is 17 printf(
#include <stdio.h>
#include <string.h>
char last_chr(char *c);
int main (int argc, const char * argv[]) {
char text[32];//char *text[15]
strcpy(text, "*find:last;char#");//length is 17
printf("last char: %c", last_chr(text));//#
return 0;
}
char last_chr(char *c) {
if(c == NULL || *c == '\0') return 0;
return c[strlen(c)-1];
}
我获得了打印正确字母的功能,但我不知道如何返回:/
#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;
}
#包括
#包括
#包括
char last_chr(char*c);
int main(int argc,const char*argv[]{
字符*文本[15];
strcpy(文本,“*find:last;char#”);
last_chr(text);//调试
//printf(“最后一个字符:%c”,最后一个字符(文本));//不工作
返回0;
}
char last_chr(char*c){
char*endchr;
字符结果;
int pos=strlen(c)-1;
endchr=c[pos];
//sprintf(结果,“%s”,endchr);/“执行错误访问”
putchar(endchr);//打印#
//putc(endchr,result);/“执行错误访问”
//printf(endchr);/“执行错误访问”
返回结果;
}
您不分配结果
。你可能是说
result = c[pos];
而不是endchr=c[pos]代码>
endchr
是字符指针而不是字符。\include
#include <stdio.h>
#include <string.h>
char last_chr(char *c);
int main (int argc, const char * argv[]) {
char text[32];//char *text[15]
strcpy(text, "*find:last;char#");//length is 17
printf("last char: %c", last_chr(text));//#
return 0;
}
char last_chr(char *c) {
if(c == NULL || *c == '\0') return 0;
return c[strlen(c)-1];
}
#包括
char last_chr(char*c);
int main(int argc,const char*argv[]{
字符文本[32];//字符*文本[15]
strcpy(文本“*find:last;char#”);//长度为17
printf(“最后一个字符:%c”,最后一个字符(文本))//#
返回0;
}
char last_chr(char*c){
如果(c==NULL | |*c=='\0')返回0;
返回c[strlen(c)-1];
}
不是endchr=c[pos]代码>也给你一个错误?这只给了我一个警告:“赋值使指针从整数变为无强制转换”永远不要忽略警告。除非你有很好的理由。即使这样,也要修复它。当您弄乱指针时,忽略此警告尤其危险。让它指向随机数据。提示:如果您使用的是GCC,请使用-Wall-pedantic
编译。