0
从键盘任意输入一个整型表示的月份值,用指针数组编程输出该月份的英文表示,若输入的月份值不在1~12之间,则输出“Illegal month”。
**输入格式要求:"%d" 提示信息:“Input month number:”
**输出格式要求:“month %d is %s\n”
“Illegal month”, “January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”, “September”, “October”, “November”, “December”
程序运行示例1如下:
Input month number:5
month 5 is May
程序运行示例2如下:
Input month number:13
Illegal month
#include<stdio.h>
int main()
{
int n;
const char* month[12] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
printf("Input month number:");
scanf_s("%d", &n);
if (n < 1 || n>12)
printf("Illegal month");
else
printf("month %d is %s\n", n, month[n - 1]); //传递给%s的应该是一个地址,而不是*month[n-1]
}
————————————————
版权声明:本文为CSDN博主「尘封.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52275610/article/details/113887027
1
利用一个字符数组作函数参数,实现字符串(最大长度为80个字符 )的逆序存放。
要求如下:
(1)在子函数Inverse中实现字符串的逆序存放。函数原型为:
void Inverse(char str[]);
(2)在主函数中
从键盘输入字符串(使用gets函数)
然后,调用Inverse函数,
最后,输出逆序后的字符串。
(3)**输入提示信息:“Input a string:\n”
**输出提示信息:“Inversed results:\n”
**输出格式:"%s\n"
注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用int main和return 0。
#include<stdio.h>
#include<string.h>
#define N 80
void Inverse(char str[]);
main()
{
char str[N];
printf("Input a string:\n");
gets(str);
Inverse(str);
printf("Inversed results:\n");
printf("%s\n",str);
}
void Inverse(char str[])
{
int a = strlen(str), i;
char temp;
for(i = 0;i < a/2; i++)
{
temp = str[i];
str[i] = str[a - 1 - i];
str[a - 1 - i] = temp;
}
}
————————————————
版权声明:本文为CSDN博主「星海燚燚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45700528/article/details/105185514
2
任意输入英文的星期几,通过查找星期表,输出其对应的数字,
若查到表尾,仍未找到,则输出错误提示信息。
**输入格式要求:"%s" 提示信息:“Please enter a string:\n”
**输出格式要求:"%s is %d\n" “Not found!\n”
查找表中信息:
“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”
程序运行示例1如下:
Please enter a string:
Monday
Monday is 1
程序运行示例2如下:
Monkey
Not found!
#include<stdio.h>
#include<string.h>
int main()
{
int i, count = 0;
const char* Weekday[8] = { 0,"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday" };
char day_name[30];
printf("Please enter a string:\n");
scanf("%s", day_name);
for (i = 1; i < 8; i++)
{
if (!(strcmp(day_name, Weekday[i]))) //strcmp为字符串比较函数,传递两个数组名(地址)过去比较
{
count = i;
break;
}
}
if (i == count) //验证是否找到了输入的该星期名
printf("%s is %d\n", day_name, count);
else
printf("Not found!\n");
}
————————————————
版权声明:本文为CSDN博主「尘封.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_52275610/article/details/113906516
3
原教材例题对奥运会参赛国国名按字典排序
例10.4(C语言程序设计第四版)P264
#include<string.h>
#define MAXLEN 10
#define N 150
void SortString(char str[][MAXLEN],int n);
int main()
{
int i,n;
char name[N][MAXLEN];
printf("How many countries?");
scanf("%d",&n);
getchar();
printf("Input their names:\n");
for(i=0;i<n;i++)
{
gets(name[i]);
}
SortString(name,n);
printf("Sorted results:\n");
for(i=0;i<n;i++)
{
puts(name[i]);
}
return 0;
}
//函数功能:用交换法实现字符串按字典顺序排序
void SortString(char str[][MAXLEN],int n)
{
int i,j;
char temp[MAXLEN];
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(strcmp(str[j],str[i])<0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
}
}
部分字符串处理函数的设计
复制
//向函数传递字符串
void MyStrcpy(char dstStr[],char srcStr[])
{
int i=0;
while(srcStr[i]!='\0')
{
dstStr[i]=srcStr[i];
i++;
}
dstStr[i]='\0';//在字符串dstStr末尾添上结束标志
}
//使用指针
void MyStrcpy(char *dstStr,char *srcStr)
{
while(*srcStr!='\0')
{
*dstStr=srcStr;
srcStr++;
dstStr++;
}
*dstStr='\0';
}
计算字符串长度
int myStrlen(char *str)
{
int i=0;
while(*str!='\0')
{
i++;
str++;
}
return i;
}
字符串连接
char *MyStrcat(char *dstStr,char *srcStr)
{
char *pStr=dstStr;//保存字符串dstStr的首地址
//将指针移到字符串dstStr的末尾
while(*dstStr!='\0')
{
dstStr++;
}
//将字符串srcStr复制到字符串dstStr的后面
for(;*srcStr!='\0';dstStr++,srcStr++)
{
*dstStr=*srcStr;
}
*dstStr='\0';
return pStr;//返回连接后的字符串的首地址
}
标签:dstStr,int,C语言,char,收录,str,习题,month,srcStr
From: https://www.cnblogs.com/20031004wzy/p/16913190.html