69,373
社区成员
发帖
与我相关
我的任务
分享
char string[] = "./aaa/111/";
int len = strlen(string);
if(len > 0 && string[len - 1] == '/')
{
//do something
}
char string[] = "./aaa/111";
char *p = string + strlen(string);
while(p-- > string)
{
if(*p == '/')
{
*p = '\0';
break;
}
}
////// string[] --> "./aaa"
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[]="./aaa/111/",str2[]="./aaa/111",substr[16]={0};
char *p1=str2,*p2=substr,flag=2;
if('/'==str1[strlen(str1)-1])//判断是否以'/'结尾,其实是判断倒数第二个字符是否'/'结尾,因为字符串都以'\0'结尾
printf("%s is end of /.\n",str1);
while(*p1&&flag)//取字符串
{
*p2++=*p1++;
if('/'==*p1)
--flag;
}
puts(substr);
getchar();
return 0;
}
#include <stdio.h>
#include <ctype.h>
#include <string.h>
/*
问题1
./aaa/111/
怎样判断这个字符以/结尾
问题2
./aaa/111
这个字符串。怎样截取开始位置到最后一个/之间的字符串,得到./aaa
注意:这个字符串的长度是不固定的。只能截取0-最后一个/之间的字符。
*/
int main()
{
//这个字符串的长度是不固定的。只能截取0-最后一个/之间的字符。
//可以调用输入函数,来对str赋值.
char str[255] = "./aaa/111/";
char s[255] = {'\0'};
char *p;
puts(str);
//怎样判断这个字符以/结尾
//判断最后一个字符是不是'/'
printf("是否以'/'结束?\n");
if(str[strlen(str)-1] == '/') {
printf("yes\n");
}
else {
printf("no\n");
}
//怎样截取开始位置到最后一个/之间的字符串,得到./aaa
//可以先定位最后一个'/'字符在串中的位置.然后取开头到这个位置之间的字符.
p = strrchr(str, '/');
if(p == NULL) {
printf("%s中没有找到'/'字符!\n", str);
return 1;
}
printf("%s中最后一个'/'字符的位置为%d.\n", str, p-str);
strncpy(s, str, p - str);
printf("s=%s\n", s);
return 0;
}