作业
1、二维字符数组每一行逆序输出。
#include<myhead.h>
int main() {
char str[3][6] = {"asdf","qwer","asdfg"};
int rows = sizeof(str) / sizeof(str[0]);
int cols = sizeof(str[0]) / sizeof(str[0][0]) ;
int i=0, j=0;
for(i = 0;i < rows;++i)
{
for (int j = cols-1; j >= 0; j--) {
printf("%c", str[i][j]);
}
puts("");
}
return 0;
}
运行结果:
2、一维数组“qwertyuio” 查找出 yuio存在的位置是多少?输出其位置(模式匹配)。
#include<myhead.h>
int find(const char *p1, const char *p2) {
int strl1 = strlen(p1);
int strl2 = strlen(p2);
for (int i = 0; i <= strl1 - strl2; i++) {
if (strncmp(&p1[i], p2, strl2) == 0) {
return 1;
}
}
return 0;
}
int main() {
char *str1 = "qwertyuio";
char *str2 = "yuio";
if (find(str1, str2)) {
printf("子串 '%s' 存在于位置: %ld\n", str2, strlen(str1) - strlen(str2) + 1);
} else {
printf("子串 '%s' 不存在于字符串中。\n", str2);
}
return 0;
}
运行结果: