以下是一段代码
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
struct Card
{
string subject; //课程名称
string nature; //课程性质
double credit; //学分
int point; //绩点
int score ;//成绩
int fuxiu;//辅修标记
int bukao;//补考成绩
int bukaochengji;//卷面补考成绩
int chongxiu;//重修成绩
int college;//开课学院
};
char *str1 = "信息技术导论</td><td>学科基础课";
char *str2 = "信息技术导论";
char *p;
p = strstr(str1, str2);
if (p != NULL)
{
printf("%s\n",p); // 若str1指向的字符串中有str2指向的字符串,则将p所指的字符串输出
}
else{
printf("Not Found!\n"); // 若没找到,返回信息"Not Found!"
}
return 0;
}
这里输出的结果是"信息技术导论</td><td>学科基础课",如果我想一个一个字的输出,比如"信","息",要怎么改代码?有没有什么高级点的输出控制函数?
解决的话一定追加分数,麻烦各位了!
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
int main()
{
char *str1 = "信息技术导论</td><td>学科基础课";
char *str2 = "信息技术导论";
char *p;
p = strstr(str1, str2);
if (p != NULL) // 若str1指向的字符串中有str2指向的字符串,则将p所指的字符串输出
{
for(int i=0;p[i];)
{
if(p[i] < 0)//汉字是两个字符组成,每个字符都小于0
{
printf("%c%c",p[i],p[i+1]);
i+=2;
// system("pause");
}
else
{
printf("%c",p[i]);
i+=1;
// system("pause");
}
}
}
else
{
printf("Not Found!\n"); // 若没找到,返回信息"Not Found!"
}
return 0;
}
char* strList[1000]; //用来存储这些字符串
首先要把文件里的字符解析成单词放到strList里,一般是以空格作为分隔符。然后按照字符串的长度进行排序就可以了。最后怎么显示就看你需要了。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!