字符串是指针,以下使指针指向一个字符串的选项错误的是
Yyds干货库存
@TOC
一.杨氏矩阵
我们必须考虑时间复杂度。
小于o(N)表示循环数不能是的两倍。
#包含stdio.h
int search(int arr[3][3],int *px,int *py,int k)
int x=0;
int y=* py-1;//最后一列的坐标
while (x=*px - 1 y=0)
If (arr[x][y] k)//如果第n行最后一列的元素值小于k,那么k的值一定在下面。
x;
Else if(arr[x][y] k)//如果N 1行最后一列的元素大于k的值,则意味着k的值可能在其左侧。
y-;
其他
* px=x;//将坐标传回
* py=y;
返回1;
返回0;
int main()
int arr[3][3]={ {1,2,3},{4,5,6},{7,8,9 } };
int k=8;
int x=3;
int y=3;
int ret=search(arr,x,y,k);//分别调用第X行和第Y列的地址,函数中对应的坐标位置就可以传回来了。
if (ret==1)
Printf (Found \n%d %d ,x,y);
其他
Printf(未找到\ n );
返回0;
}
二。左手字符串
1.
#包含stdio.h
#包含字符串. h
void rotate(char* str,int k)
int I=0;
int j=0;
char tmp=0;
int len=strlen(str);
for(I=0;I)//根据左转次数确定循环次数。
tmp=* str//将第一个字符赋给tmp
for(j=0;j len-1;J )//依次向前分配以下字符。
*(str j)=*(str J1);
str[len-1]=tmp;//最后一个字符由tmp赋值
int main()
char arr[]= ABCD ;
int k=1;
rotate(arr,k);
printf(%s\n ,arr);
返回0;
}
2.三步翻转法
#包含stdio.h
#包含字符串. h
Void reverse (char * left,char * right)//两者互换
同时(左/右)
char tmp=0;
tmp=* left
*左=*右;
*右=tmp
左;
右-;
int main()
char arr[]= ABCD ;
int k=2;
int len=strlen(arr);
反向(arr,arr k-1);//要翻转的字符的逆序
反向(arr k,arr len-1);//其余字符的顺序相反
reverse(arr,arr len-1);//整体逆序
printf(%s\n ,arr);
返回0;
}
三。字符串旋转结果
#包含stdio.h
#包含字符串. h
int rotate(char* str,char*str2)
int I=0;
int j=0;
char tmp=0;
int len=strlen(str);
for(I=0;我lenI )//根据左转圈数确定循环圈数。
tmp=* str//将第一个字符赋给tmp
for(j=0;j len-1;J )//依次向前分配以下字符。
*(str j)=*(str J1);
str[len-1]=tmp;//最后一个字符由tmp赋值
If (strcmp(str,str2)==0)//如果两个字符串相等
返回1;
返回0;
int main()
char arr 1[]= AABCD ;
char arr 2[]= BCDAA ;
int ret=rotate(arr1,arr 2);//左转判断所有情况。
if (ret==1)
printf( Yes \ n );
其他
printf( no \ n );
返回0;
四。反转字符串
#包含stdio.h //我爱你。- .你爱我吗
#包含字符串. h
Voidswap (char * left,char * right)//两者互换
同时(左/右)
char tmp=0;
tmp=* left
*左=*右;
*右=tmp
左;
右-;
int main()
char arr[]=我爱你;
int len=strlen(arr);
swap(arr,arr len-1);
char * dest=arr
char * src=arr
while (*src!=\0)
while (*src!= *src!=\0)
src
char * prev=src-1;
swap(目标,前一个);
if (*src!=\0)
src
dest=src
printf(%s\n ,arr);
返回0;
}
主要应用三步翻转法。
我爱你。
把整个翻过来。你先进化吧。
把每个都翻一遍:你-你。evol-love I-I
开始时,定义两个指针dest src
使用dest指向每个小的全局字符的第一个。
Src指向每个小的全局字符的最后一个
由指向循环中的“”或“\0”的src触发
Prev是找到前一个,也就是每个小整字的最后一个。
在src之后,再次指向新的小整字的第一个循环。
当src时,我们可以发现如果最后一个 \0 进来,没有
判断将在while循环中结束。
。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。