题目1:将一个字符串str的内容颠倒过来,并输出。
数据范围:1≤len(str)≤10000
代码和思路:
#include <stdio.h>
#include<string.h>
int main()
{char str1[10000];gets(str1);//读取字符串内容char* p=&str1[0];int a,i;a=strlen(str1);//给字符长度for(i=a-1;i>=0;i--){printf("%c",*(p+i));//从原来地址内容最后的开始打印}printf("\n");
return 0;
}
题目2:模拟实现库函数strlen
代码和思路:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>int my_strlen(char *s )
{int count = 0;while (*s != '\0'){count++;s++;//每循环一次,s++,空间往后走一格}return count;
}
int main()
{int len = my_strlen("abc");//因为字符串以/0结尾,所以,当读取到/0时,停止读取,停止循环printf("%d\n", len);return 0;
}
题目3 :实现一个函数,可以左旋字符串中的k个字符。
例如:
ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB
代码和思路:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>void LeftCircle(char str[], int k)//传参,字符串,左旋几个
{int len = strlen(str);char* pc = str;for (int i = k; i < len; i++)//假如是abcdef,4个,这里就是从第5个e开始打印,ef{printf("%c", *(pc + i));}for (int i = 0; i < k; i++)//这边就是abcd{printf("%c", *(pc + i));}
}int main()
{char str[10001];int k;printf("请输入字符串:");gets_s(str);printf("请输入想左旋的字符串:");scanf("%d", &k);LeftCircle(str, k);
}