用C编写一个向左旋转(char*)函数
我们如何编写一个rotate_left(char*)函数,该函数接受以null结尾的字符串并将其向左旋转一个字符。例如:“abcdef”->“bcdefa” 到目前为止,我已经:用C编写一个向左旋转(char*)函数,c,C,我们如何编写一个rotate_left(char*)函数,该函数接受以null结尾的字符串并将其向左旋转一个字符。例如:“abcdef”->“bcdefa” 到目前为止,我已经: rotate_left(char* str){ int i, lin; char buff[lin+1], temp; lin = strlen(str); strcpy(buff,str); } 有人能帮我完成这个功能吗。非常感谢。char last=str[0]; char l
rotate_left(char* str){
int i, lin;
char buff[lin+1], temp;
lin = strlen(str);
strcpy(buff,str);
}
有人能帮我完成这个功能吗。非常感谢。char last=str[0];
char last = str[0];
int len = strlen(str);
for(i=0; i< len-1; i++) { str[i] = str[i+1]; }
str[len-1] = last;
int len=strlen(str);
对于(i=0;i
我想我不会使用太多的问题代码。以下是另一种解决方案:
rotate_left(char* str){
char ch;
1) 存储将从左侧旋转到右侧的字符
ch=*str;
2) 将字符串中的所有字符左移一个字节
memmove(str, str+1, strlen(str)-1);
3) 将旋转后的字符复制到“str”的末尾
str[strlen(str)] = ch;
}
您可以在适当的位置进行旋转,如下所示:
char * rotate_left1 (char *str) {
char ch;
int i;
ch = str[0];
for (i = 0; str[i+1]; i++) {
str[i] = str[i+1];
}
str[i] = ch;
return str;
}
首先,在使用
lin
之前,您不需要为其赋值。