c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母 10C

c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母。
例如:Lloyd Fosdick
输出是: Fosdick,L.
注意:用户可能在名字前,名字和姓之间,名字后加空格,但输出结果不要空格!

c

10个回答

哎呀,贴代码给你吧

include

include

int main()
{
char ch;
char chf[100];
char chl[100];
int i=0, j=0, k=0;
//录入字符串
while(scanf("%c", &ch) && ch!='\n')
{
chl[i]=ch;
i++;
}
//求前面的空格
for (int c=0;c if (chl[c]>=65 && chl[c]<=90)
break;

//去空格
for (int d=0;d<c;d++)
    for (int e=c-1;e<i;e++)
        chl[e-1]=chl[e];
i=i-c;

//找姓的首字母地址
for (j=1;j<i;j++)
    if (chl[j]>=65 && chl[j]<=90)
        break;

//录入姓
while (j<i)
{
    chf[k]=chl[j];
    k++;
    j++;
}
//输出
for (int a=0; a<k; a++)
{
    printf ("%c", chf[a]);
    if (chf[a+1]==' ')
        break;
}

printf (",");
printf ("%c",chl[0]);
return 0;

}


qq_37597439
子问 花式绝望。。。开头是# include <stdio.h> # include <malloc.h>
一年多之前 回复

可以根据输入名和姓中间的空格进行划分,至于划分的方法,如果是c语言,那就遍历字符串找到空格的位置,然后进行字符串的切片操作,如果是c++,直接有函数split进行操作。
在分割好后,先输出后面的字符串,再输出“,”,最后再输出字符串的第一个字母。
以上方法可行,老兄可以试试!!!

u011029018
u011029018 如果是c语言,那就遍历字符串找到空格的位置,然后进行字符串的切片操作,如果是c++,直接有函数split进行操作。 在分割好后,先输出后面的字符串,再输出“,”,最后再输出字符串的第一个字母。
一年多之前 回复
whyyouhitme_
whyyouhitme_ 回复GHH120338: 老哥,请注意题目。说是有可能会加空格。也就是,也有可能不加空格。所以我是按大写字母区分的。
一年多之前 回复

最简单的方法:设置一个str[MAX_SIZE]的一维数组(MAX_size看自己心情设置大小),然后for循环(也可以其他类型循环),一维数组的最后一个addr输出,判断空格,遇到空格后输出,str[0] 就完了。
如果想稍加完善,记得判断用户输入的姓和名的首字母是否大写,然后进行相应的转换。

u011029018
u011029018 如果是c语言,那就遍历字符串找到空格的位置,然后进行字符串的切片操作,如果是c++,直接有函数split进行操作。 在分割好后,先输出后面的字符串,再输出“,”,最后再输出字符串的第一个字母。
一年多之前 回复
Vincent_Xupt
一只小菠菜OvO 回复whyyouhitme_: 然后,你又不会告诉我,“老哥,如果用户没输入逗号呢?”如果是这样,违背题目,无法自动识别名字与姓氏,一道没意思的题喽。哈哈
一年多之前 回复
Vincent_Xupt
一只小菠菜OvO 回复whyyouhitme_: 如果没有空格。那就IF...ELSE...判断,要不遇到空格就输出,str[0],要不遇到逗号就输出str[0]
一年多之前 回复
whyyouhitme_
whyyouhitme_ 回复Siege-lion: 老哥。如果用户的输入里没有空格呢?
一年多之前 回复
  我的想法是:按老外的习惯,他们的首字母会大写,弄俩字符串,分别记录名和姓,遇到大写,就是65到106开始,把名输到名的字符串里面,遇到第二个大写输到姓的字符串里面,然后输出。

可以先提交代码呀,看看是否是wrong answer,万一题目没有你想的那么复杂哩

#define SIZE 20
int main()
{
    int i = 0;
    char str[] = "Lloyd Fosdick";

    for (i=SIZE-1; i>=0; i--) //找到最后一个非字母的字符
    {
        if (str[i] == ' ' || str[i] == ',' || str[i] == '.')
        {
            break;
        }
    }
    printf("%s,",&str[i+1]); 
    printf("%c.",str[0]);
}


结果截图:

图片说明

/*去除字符串右边空格*/

void StrRTrim(char *pStr)

{

char *pTmp = pStr+strlen(pStr)-1;

while (*pTmp == ' ')   
{  
    *pTmp = '\0';  
    pTmp--;  
}  

}

/*去除字符串左边空格*/

void StrLTrim(char *pStr)

{

char *pTmp = pStr;

while (*pTmp == ' ')   
{  
    pTmp++;  
}  
while(*pTmp != '\0')  
{  
    *pStr = *pTmp;  
    pStr++;  
    pTmp++;  
}  
*pStr = '\0';  

}

int StrName(char *pStr, int nLen)
{
int i = 0;

for (i=nLen-1; i>=0; i--) //找到最后一个非字母的字符
{
    if (pStr[i] == ' ')
    {
        break;
    }
}
printf("%s,",pStr + i); 
printf("%c.", *pStr);
    return 0;

}

void main()
{
char str[] = " Lloyd Fosdick ";
StrLTrim(str);
StrRTrim(str);
StrName(str, strlen(str));
}

写了个简单程序,直接复制过去执行,应该是你想要的吧
#include
#include
int main(int argc, char **argv)
{
char s_name[256];
char f_name[2];
char l_name[256];
int i=0;

    printf("please enter your name!\n");
    fgets(s_name, 256, stdin);
    printf("%s\n",s_name);
    strncpy(f_name, s_name, 1);
    printf("%s\n", f_name);
    for (i=1; s_name[i] != '\0'; i++)
    {
            if (s_name[i] >= 'A' && s_name[i] <= 'Z')
            {
                    break;
            }
    }
    strncpy(l_name, s_name+i, strlen(s_name)-i-1);

    printf("%s,%s\n", l_name, f_name);

    return 0;

}


vist_1
Vist_1 复制的有问题,前两行是#include <stdio.h>和#include <string.h>
一年多之前 回复

按照习惯,姓和名首字母都是大写的字母,其他是小写,strchr空格,区分出姓氏和名字,再根据你的要求重新拼写就可以了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个输入英文名和姓先显示姓氏,其后跟一个逗号 然后显示名首字母,最后加一个点
不用数组怎么解决这问题,各位帮帮忙,感谢!
【C语言】编写一个程序显示当前时间。
#include #include #include int main() { struct tm *ptm; time_t ts; char tim[50]; ts = time(NULL); ptm = localtime(&ts); sprintf(tim,"(%d-%d-%d %02d:%02d:%02d):",ptm->tm_year+1900,ptm->tm_mon
C语言编写一个程序,提示用户输入两个日期,然后显示哪一个日期更早:
要求:Enter first date (mm/dd/yy):3/6/08 Enter second date (mm/dd/yy):5/17/07 5/17/07 is earlier than 3/6/08 #include &quot;stdio.h&quot; int main() { int mm,dd,yyyy,mm1,dd1,yyyy1; printf(&quot;Enter first dat...
C语言编写一个输入密码程序
预先设定一个用户登陆的密码,然后让用户输入密码登陆,错误三次则程序退出 #define _CRT_SECURE_NO_WARNINGS #include&lt;stdio.h&gt; int main() { int i,x; int y = 0; //通过这个变量判断for循环执行完是正确还是错误 int code = 147258 ; //设定初始密码 ...
python小程序,规范用户输入英文名的大小写(首字母大写)
def normalize(name): n = name.upper() if len(n) > 1: n = n[0] + n[1:].lower() return n L1 = ['fgdfg', 'WER', 'DFcf'] L2 = list(map(normalize, L1)) print(L2)
从键盘输入一个人的姓和名,然后将姓和名的首字母变成大写字母
#include<stdio.h> #include<ctype.h> #define N 100 int main() { char name[N]; int i; printf("请输入一个英文名字:"); gets(name);//输入名和姓 name[0]=toupper(name[0]);//将名的首字母变成大写 i=1; wh
用C语言的CPP编一个程序,输入一个日期,然后显示一段话。
我编出来在定义上有错误,不知道在哪里有错,想借鉴一下大神们的源代码看看。
编写一个显示本机sql服务器名?
显示本机的sql服务器名,不是(local)rn是实名。
C语言:编写一个程序,接受一个整数输入,然后显示所有小于或等于该数的整数。
不懂错在哪里了???请各位赐教。rnrn#include rnint main(void)rnrn long num; /* value to be checked */rn long div; /* potential divisors */rn long lim; /* limit to values */rn int prime;rnrn printf("Please enter limit to values to be checked; ");rn printf("Enter q to quit.\n");rn while (scanf("%ld", &lim) == 1 && lim > 0)rn rn for (num = 2; num <= lim; num++)rn rn for (div = 2; (div * div) <= num; div++)rn if (num % div == 0)rn continue; /* number is not prime */rn elsern printf("%ld is prime.\n", num);rn rn printf("Please enter another limit; ");rn printf("Enter q to quit.\n");rn rn return 0;rn
C语言编写的汉字显示
/*************** 点阵字模工具编程辅助效果示例 ***************/ /************************************************************************ 该示例中的字模数组均由“点阵字模工具”生成,你可以用你自己需要的点阵信息来 替换示例中的字模信息,注意字模大小要一致,否则显示会出问题。 用WIN-TC的字模工具生成指定字模信息能给你提供方便的集成小型字库解决方案
C语言编写时钟显示
利用动态扫描和中断实现时钟的显示,代码精简,更适合新手学习和参考!
页面输入汉字,显示首字母
页面输入汉字,直接生成首字母编码 &amp;lt;div class=&quot;input-group&quot;&amp;gt; &amp;lt;span class=&quot;input-group-addon&quot;&amp;gt; 部门编号:&amp;lt;/span&amp;gt; &amp;lt;input type=&quot;text&quot; id=&quot;deptCode&quot; name=&quot;deptCode&quo
求助:编写一个程序,输入一个文法,输出其正则表达式。
求助:编写一个程序,输入一个文法,输出其正则表达式。收藏rn例如 文法L=Q,T,P,SrnP:rn输入包括三部分:非终结符Q,终结符 T,生成式P,起始符可要可不要。rn例:rnSrna,brnrnS->aS;rnS->b;rn输出:rna*b(注释:a*b表示n个a后面接上一个b,其中n>=0,输出并不一定要上述格式,只需要能看懂的输出就行)
为了将姓和名分开,然后输出,……
程序如下rn不知道错在哪??rn#includernclass Namernrnpublic:rn Xm(char *a);rn Display();rnprotected:rn char *xing;rn char *ming;rn;rnName::Xm(char *a)rnrnrn for(int i=0;a[i]!=' ';i++)//姓的个数rn rn ;rn rn char *name1=new char[i+1];rn for(int j=0;j
先全部显示然后在滚动
&amp;lt;div id=&quot;scroll_div&quot; style=&quot;overflow: hidden; height: 137px; width: 658px; white-space: nowrap;&quot;&amp;gt; &amp;lt;div id=&quot;scroll_begin&quot; style=&quot;display: inline;&quot;&amp;gt; &amp;lt;img src=&qu
求解一个分开姓和名的函数问题
题目:通过输入姓名,比如"michael jordan",写个函数实现rnthe first name:michaelrnthe last name:jordanrn要求用函数;rnvoid split(char MyName[])rnrn int i,j=0;rn char test[100],test1[100];rn while(MyName[i]!=' ')rn rn test[i]=MyName[i];rn i++;rn rn printf("the first name is:%s",test);rn j=i;rn while(MyName[i]!='\0')rn rn test1[i-j]=MyName[i];rn i++;rn rn printf("the last name is:%s",test1);rnrnmain()rnrn split(michael jordan);rn split(John Doe);rnrn我写了之后,发现执行第一个没有问题,执行到第二句split(a b)的时候会保留之前一句里面的内容,也就是函数里面的数组没有执行清除操作,该怎么做,谢谢!
C密码输入,输入一个字符显示一个星号,怎么弄
刚刚学C,很多地方搞不明白,这个是我做的个一个简单银行系统,想每次输入密码的时候显示星号,求助啊!!rn[code=c]rn# include rn# include rn# include rn# include rn# define N 20rnrnint sum = 0 , i = 0;rnchar s1[N]="xiao";rnchar s2[N];rnrnrnrnint save()rnrn printf("请输入密码: ");rn scanf("%s",s2);rn if(strcmp(s1,s2)!=0)rn rn printf("密码错误!");rn rn elsern rn printf("请输入需要存入的数额: \n");rn scanf("%d",&i);rn sum = sum + i;rn printf(" 您存入 %d\n" , i);rn printf("当前余额为:%d" , sum); rn printf("\n");rn return sum;rn rnrnrnrnrnint draw()rnrnrn printf("请输入密码: ");rn scanf("%s",s2);rn if(strcmp(s1,s2)!=0)rn rn printf("密码错误!");rn rn elsern rn printf("输入需要取出的数额 :");rn scanf("%d" , &i); rn if(sum < i)rn printf("您的余额不足\n");rn elsern rn sum = sum - i;rn printf("您取出: %d\n" , i);rn printf("当前余额为: %d", sum);rn rn return sum; rn rn rnrnrnint re()rnrn char s3[N];rn //int i;rn printf("请输入原密码:");rn scanf("%s",s3);rnrn if(strcmp(s1,s3)==0)rn rn printf("请输入新密码:");rn scanf("%s",s2);rn strcpy(s1,s2);rn printf("密码修改成功!\n");rn rn rn elsern printf("密码错误!\n");rn return 0;rn rnrnrnint main(void)rnrnrn int choice;rn int sum = 0 , i = 0;rn printf("请输入密码:");rn gets(s2);rn if (strcmp(s1, s2) != 0)rn rn printf(" 密码错误!\n"); rn rn elsern rn while(1)rn rn system("cls");rn printf("1.存款 2.取款 3. 更改密码 0.退出\n");rn scanf("%d" , &choice);rn if(choice == 0)rn break;rn switch(choice)rn case 1:rn save();rn break;rn case 2:rn draw();rn break;rn case 3:rn re();rn break;rn rn printf("按任意键返回\n");rn getch();rn rn rn rn return sum;rnrn[/code]
输入一个汉字,然后显示一个汉字的字根或区位码
我想编一个程序:rn输入一个汉字,然后显示一个汉字的字根或区位码rnrn不知道有谁能够提供我一些资料
根据不同的用户显示不同的语言
[code=&quot;java&quot;] class LocaleMiddleware(object): def get_language_forr_user(self,request): if request.user.is_authenticated(): try: account = Account.object...
请教,怎样让人名按照姓氏拼音首字母分组显示
rn 后台采用sql server,采用ado方式访问数据。想把员工表中信息按照姓氏拼音首字母分组顺序显示,如何实现?
用C++编写一个教师和学生数据的输入和显示程序
用C++编写一个教师和学生数据的输入和显示程序
编写一个学生和教师数据输入和显示程序
编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类
//编写一个程序,显示用户输入的一个日期是该年度的第几天。
cout<<"珍爱当下,认真细致的生活"<<'\n';
5.3 编写一个程序,显示用户输入的一个日期是该年度的第几天。
5.3 编写一个程序,显示用户输入的一个日期是该年度的第几天。
一个c语言编写的解数独的程序
一个C语言编写的解数独的程序,要求数独只有一个解 具体就和普通的数独游戏一样,有已知的几个数,然后算出其他的数
c语言编写一个服务端程序
c语言编写一个服务端程序,用来循环接受客户端发来的信息(包括信息的时候),并根据信息来操作数据库。服务端是在linux下运行,并且最好有多线程,和子进程等,这些东西该咋写啊?rn另外,我对服务端如何接受客户端发来的数据有些不明白,还有客户端如何访问这些东西也有点不明白,可以的话,也都发发言吧
C语言编写一个词频统计程序
老师布置的题,明天有事做不完了,谁能帮帮忙。。万分感谢。。rn使用C语言编写一个词频(限英文文章)统计程序,使之能够给出各个单词在输入文件中的出现次数。rn调用一篇英文文章,在屏幕上显示所有单词的频数。。有谁能帮帮忙不,谢啦。。
c语言编写一个文件检索程序
用C语言编写一个快速文件检索程序,检索关键字,并将含有该关键字的文件复制到另一样文件夹。
用C语言编写一个关机程序
题目要求 用C语言编写一个关机程序 程序分析 系统提示一分钟之后关机,如果输入“我爱你”就注销关机,否则将跳到关机程序,继续提示,如果一分钟之内输入不对,则关机。 主要程序 #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #include &amp;lt;string.h&amp;gt; int main() { char input[20]; syste...
求助 用c语言编写一个程序
要求:输入:一句英文 形如 I am a student rn 输出: student a am Irn请各位大侠帮忙 rn解决请发我油箱 谢谢 2290084@163.comrn不胜感激rnrn
一个用C语言控制LED显示的程序,这个汇编程序用C语言怎么编写出来?
TIM_CTL EQU 203HrnTIMER0 EQU 200HrnTIMER1 EQU 201HrnMODE03 EQU 36HrnMODE12 EQU 74HrnrnINTA00 EQU 20HrnINTA01 EQU 21HrnPORTSEG EQU 211HrnPORTBIT EQU 210HrnrnSTACK SEGMENT STACKrnSTA DW 512 DUP (?)rnTOP EQU LENGTH STArnSTACK ENDSrn rnDATA SEGMENTrnMIN1 DB 0rnMIN2 DB 0rnGAP1 DB 10rnGAP2 DB 10rnSEC1 DB 0rnSEC2 DB 0rnINTMASK DB ?rnCSREG DW ?rnIPREG DW ?rnCOUNT DB 0rnLED DB 3FH,06,5BH,4FH,66H,6DH,7DH,07,7FH,6FH,40HrnMES DB 'DISPLAY THE LEDS,PRESS ANY KEY TO DOS!'rn DB 0AH,0DH,'$'rnDATA ENDSrn rnCODE SEGMENTrn ASSUME CS:CODE,DS:DATA,SS:STACKrnrnSTART: PUSH DSrn MOV AX,0rn PUSH AXrn MOV AX,DATArn MOV DS,AXrn CLIrn MOV DX,TIM_CTLrn MOV AL,MODE03rn OUT DX,ALrn MOV DX,TIMER0rn MOV AL,00hrn OUT DX,ALrn MOV AL,02Hrn OUT DX,ALrn MOV DX,TIM_CTLrn MOV AL,MODE12rn OUT DX,ALrn MOV DX,TIMER1rn MOV AL,0aHrn OUT DX,ALrn MOV AL,00rn OUT DX,ALrn rn MOV AX,STACKrn MOV SS,AXrn MOV SP,TOPrn MOV AX,DATArn MOV DS,AXrn MOV DX,OFFSET MESrn MOV AH,09rn INT 21Hrn MOV AX,350AHrn INT 21Hrn MOV AX,ESrn MOV CSREG,AXrn MOV IPREG,BXrn PUSH BXrn PUSH DSrn MOV AX,CSrn MOV DS,AXrn MOV DX,OFFSET INT_PROCrn MOV AX,250AHrn INT 21Hrn POP DSrn MOV DX,INTA01rn IN AL,DXrn MOV INTMASK,ALrn AND AL,0FBHrn OUT DX,ALrnAGAIN: IN AL,21Hrn OR AL,04Hrn OUT 21H,ALrn STIrn MOV AH,01rn INT 16Hrn PUSHFrn IN AL,21Hrn AND AL,0FBHrn OUT 21H,ALrn POPFrn JZ AGAINrn CLIrn POP BXrn MOV DX,INTA01rn MOV AL,INTMASKrn OUT DX,ALrn MOV DX,IPREGrn MOV AX,CSREGrn MOV DS,AXrn MOV AX,250AHrn INT 21Hrn STIrn MOV AX,4C00Hrn INT 21Hrn rnINT_PROC:PUSH AXrn PUSH CXrn PUSH DXrn PUSH DIrn MOV AX,DATArn MOV DS,AXrn MOV DI,OFFSET MIN1rn MOV CL,01rnDIS1: MOV AL,[DI]rn MOV BX,OFFSET LEDrn XLATrn MOV DX,PORTSEGrn OUT DX,ALrn MOV AL,CLrn MOV DX,PORTBITrn OUT DX,ALrn PUSH CXrn MOV CX,350HrnDELAY: LOOP DELAYrn POP CXrn CMP CL,20H rn JZ CHGrn INC DIrn SHL CL,1 rn MOV AL,00rn OUT DX,ALrn JMP DIS1rnCHG: INC COUNT rn CMP COUNT,50rn JL QUITrn MOV COUNT,0rn INC SEC2rn CMP SEC2,10rn JL QUITrn MOV SEC2,0rn INC SEC1rn CMP SEC1,6rn JL QUITrn MOV SEC1,0rn INC MIN2rn CMP MIN2,10rn JL QUITrn MOV MIN2,0rn INC MIN1rn CMP MIN1,6rn JL QUITrn MOV MIN1,0rnQUIT: MOV DX,PORTBITrn MOV AL,00rn OUT DX,ALrn MOV DX,INTA00rn MOV AL,20Hrn OUT DX,ALrn POP DIrn POP DXrn POP CXrn POP AXrn IRETrnCODE ENDSrnEND STARTrn一个定时显示装置,用六个数码管显示时间,这个程序用C语言如何编写?谢谢! rn rnrn rn
用C语言编写的一个迷宫程序
该程序是用栈的思想编写的迷宫程序,非本人原创
用C语言编写一个程序
[问题描述] 模拟高校旧录取流程,现有4个学校,招生人数各3位;12个考生,每位考生填写3个志愿,录取规则如下:每个学校同时按第一志愿进行录取,若已录满,直接对考生做录取标志,若录不满,从其他学校落选考生的第二志愿进行录取,依次类推从第三志愿录取。rn一、系统功能rn1、录入:rn(1)学校信息:编号、名称、招生人数rn(2)考生信息:编号、姓名、分数、第一志愿、第二志愿、第三志愿rn2、查询和统计:rn(1)按学校编号查询招生信息,包括学校编号、名称、计划招生人数、已招人数、rn最高分、最低分rn(2)按考生编号查询录取情况,包括编号、姓名、填写志愿信息、录取学校rn3、输出rn(1)按学校招生成绩排序输出招生最终信息rn(2)按考生成绩排序输出招生最终信息rn二、设计要求rn1、要求界面通过菜单化选择各项功能;rn2、要求体现结构化程序设计思想rn3、要求画出各模块的流程图rn请大侠们帮忙编一下这个程序,谢谢.
用C语言编写一个播放程序
如何用C语言编写一个播放声音的程序(假设我想调用winamp播放一个mp3,或直接播放)
c语言测速显示 程序
AT89S52 显示电机速度 用霍尔采集磁环脉冲
程序C语言_数码管显示
一个比较简单的关于数码观显示的程序,用C编的,希望能给大家带来帮助,谢谢....
c语言测距显示程序
用于单片机AT89C51测距,用于毕业设计中的单片机测距!
LCD显示程序(c语言)
LCD显示程序:12864液晶显示程序,有用的可以下载看看,51单片机c程序
1602LCD显示程序(C语言)
LCD的读写,实现在LCD屏幕上显示一个或一串字符串
求解编写一个显示金字塔的程序
如何实现输入一个1--15之间的数字,然后显示一个金字塔形状的图案。rnrneg: 5rnrn 1rn 2 1 2rn 3 2 1 2 3 1rn 4 3 2 1 2 3 4rn 5 4 3 2 1 2 3 4 5
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件