苏嵌日志
程序员文章站
2022-03-04 21:40:22
...
学习日志:
王悦
18.9.10
今日任务完成情况: 跟着老师把课上的程序都跟着编译了一遍。
今日开发中出现的问题: 刚开始虚拟机的操作不是很顺畅,多操作了几次基本能完成简单的C编写。
今日未解决的问题: 指针不是很懂。
今日开发收获: 学习到怎么在虚拟机上运行C。
自我评价: 进度还可以,课上基本跟上。
3.输入一个字符串,计算字符串中子串出现的次数
#include <stdio.h>
#include <string.h>
void main()
{
char str1[20], str2[20], *p1, *p2;
int sum=0;
printf("Please enter two strings\n");
scanf("%s%s", str1, str2);
p1=str1;
p2=str2;
while(*p1 != '\0')
{
if(*p1 == *p2)
{
while(*p1 == *p2 && *p2 != '\0')
{
p1++;
p2++;
}
}
else
p1++;
if(*p2 == '\0')
sum++;
p2=str2;
}
printf("%d", sum);
getchar();
}
4.编写一个C函数,将”I am from shanghai ”倒置为”shanghai from am I”,即将句子中的单词位置倒置,而不改变单词内部结构.
#include <stdio.h>
#include <string.h>
int main()
{
char str[]="I am from shanghai";
puts (str);
char tmp;
char *p1 = str;
char *p2 = str + strlen(str) -1;
while (p1<p2)
{
tmp = *p1;
*(p1++) = *p2;
*(p2--) = tmp;
}
char *p3 = NULL;
p1 = str;
p2 = str;
while (*p2)
{
if (*p2 == ' ')
{
p3 = p2 - 1;
while (p1<p3)
{
tmp = *p1;
*(p1++) = *p3;
*(p3--) = tmp;
}
p1 = p2 + 1;
}
p2++;
}
p3 = p2 - 1;
while (p1<p3)
{
tmp = *p1;
*(p1++) = *p3;
*(p3--) = tmp;
}
puts (str);
return 0;
}
上一篇: 学习日志1