当前位置:首页 » 编程语言 » c语言字符串编程题

c语言字符串编程题

发布时间: 2022-05-26 00:03:15

c语言字符数组编程

思路:按题意,用指针遍历字符串st,使用标识变量flag首次遇到字母置1并计数,遇到空格时flag重置0。

注意:本程序不考虑夹杂非字母的情况,请规范输入。比如“I am a stu**dent”,stu**dent将作为一个单词识别。

下面是代码:

#include <stdio.h>

int GetWordNum(char st[])

{

char *p=st;

int cnt=0,flag=0;

while(*p)

{

if(flag==0 && ((*p>='a' && *p<='z') || (*p>='A' && *p<='Z')))

cnt++,flag=1;

if(flag && *p==' ')

flag=0;

p++;

}

return cnt;

}

int main()

{

char str[]="I am a student";

printf("%s共计单词个数%d ",str,GetWordNum(str));

return 0;

}

⑵ c语言编程题 输入一字符串,判断该字符串是否为回文。

#include <stdio.h>

#include<stdlib.h>

int main()

{

char a[100];

int i=0,j=0;

printf("请输入字符串: ");

gets(a);

while(a[i]!='')

i++;

i--;

for(;j<=i;i--,j++)

{

if(a[i]!=a[j])

{

break;

}

}

if(j<=i)

{

printf("不是回文串 ",a);

}

else

{

printf("是回文串 ",a);

}

system("pause");

return 0;

}

运行效果:

(2)c语言字符串编程题扩展阅读:

return 0代表程序正常退出。return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值。

return语句用来结束循环,或返回一个函数的值。

1、return 0,说明程序正常退出,返回到主程序继续往下执行。

2、return 1,说明程序异常退出,返回主调函数来处理,继续往下执行。return 0或return 1对程序执行的顺序没有影响,只是大家习惯于使用return(0)退出子程序而已。

⑶ c语言字符数组和字符串编程题 求解

分析一下,首先第一个是字符串中的字符排序,字符怎么比较大小呢?那肯定想到了对应的ascii码呀,
那么就转换成一个数字排序的问题了,
比如58261,排序,设置一个最头位置和最尾位置变量a,b
第一个数字存入a,然后后面输入的与他比较,比他小的就替换a,比完之后就可以确定第一个最小的数字了,
那么按这个逻辑来处理就可以每次都得到最小的一个数字了,那就把这个逻辑定义成一个方法
把输入的字符串定义成一个数组,【bcfsj】然后把数组中每个成员都当成这个方法的参数进一遍逻辑,最后把return出来的值放到数组中

⑷ C语言字符串编程题目

#include "stdio.h"
#include "string.h"

#define N 6 //数组长度

void sort(char *language[]);
void output(char *language[]);

int main()
{
char *language[]={"PASCAL","BASIC","C/C++","Fortran","Turbo C","JAVA"};
sort(language);
output(language);
return 0;
}

void sort(char *language[])
{
//选择排序
for(int i=0;i<N;++i)
{
for(int j=i+1;j<N;++j)
{
if(strcmp(language[i],language[j])>0)
{
//交换
char *temp=language[i];
language[i]=language[j];
language[j]=temp;
}
}
}
}

void output(char *language[])
{
for(int i=0;i<6;++i)
printf("%s\n",language[i]);
}

⑸ C语言编程题,输入5个字符串,然后排序

#define LINEMAX 20/*定义字符串的最大长度*/

int main()

{int i;

char**p,*pstr[5],str[5][LINEMAX];

for(i=0;i&lt;5;i++)

pstr&lt;i&gt;=str&lt;i&gt;;/*将第i个字符串的首地址赋予指针数组pstr的第i个元素*/

printf("input 5 strings: ");

for(i=0;i&lt;5;i++)

scanf("%s",pstr&lt;i&gt;);

p=pstr;

sort(p);

printf("strings sorted: ");

for(i=0;i&lt;5;i++)

printf("%s ",pstr&lt;i&gt;);

}

sort(char**p)/*冒泡法对5个字符串排序函数*/

{int i,j;

char*temp;

for(i=0;i&lt;5;i++)

{for(j=i+1;j&lt;5;j++)

{if(strcmp(*(p+i),*(p+j))&gt;0)/*比较后交换字符串地址*/

{temp=*(p+i);

*(p+i)=*(p+j);

*(p+j)=temp;

}

}

}

return 0;

}

(5)c语言字符串编程题扩展阅读:

printf()函数的调用格式为:printf("&lt;格式化字符串&gt;",&lt;参量表&gt;)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

比如:

int a=1234;

printf("a=%d ",a);

输出结果为a=1234。

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include&lt;stdio.h&gt;。

int scanf(const char*restrict format,...);

函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

如:

scanf("%d%d",&a,&b);

函数返回值为int型,如果a和b都被成功读入,那么scanf的返回值就是2。

⑹ C语言中一个关于“字符串”的编程题。

#include
void fun(char *s)
{ int i, n, k; char c;
n=0;
for(i=0; s[i]!='\0'; i++) n++;
/**********found**********/
if(n%2==0) k=n-___1___ ;
else k=n-2;
/**********found**********/
c=___2___ ;
for(i=k-2; i>=1; i=i-2) s[i+2]=s[i];
/**********found**********/
s[1]=___3___ ;
}
main()
{ char s[80]="abcdefgh";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
}

自己填空吧

⑺ C语言编程题:从键盘输入一串字符,统计其中的数字与字母个数并输出

#include<stdio.h>
int
main()
{
char
a[100];
char
b[24];
int
s[100]
=
{
0
};//用于存储字符的个数
gets(a);//输入字符
//开始比较
for
(int
x
=
0;
x
<
24;
x++)
{
int
c
=
0;//记录每个字符个数
b[x]
=
x
+
97;//为了让b[0]是a,b[1]是b依次类推
for
(int
i
=
0;
i
<
100;
i++)
{
if
(b[x]
==
a[i])
{
++c;
s[x]
=
c;
}
}
if
(s[x]>=1)//只输出输入中有的字母
的个数
{
printf("%c
%d\n",
b[x],
s[x]);
}
}
getchar();
return
0;
}
(7)c语言字符串编程题扩展阅读:
gets()用法:
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束,但回车符
不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s)
函数输入字符串时存在一个问题,就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符
串直到回车为止。
示例:
#include<stdio.h>
int
main()
{
char
s[20];
printf("What's
your
name?\n");
gets(s);
printf("%s\n",s);
return
0;
}
当输入a
bde回车的时候,会输出a
bde。

⑻ C语言编程题: 输入10个字符串,将其从大到小排序后输出。

#include<stdio.h>

void swap1(int *p,int n){

int temp;

for(int i=0;i<n-1;i++)

for(int j=i+1;j<n;j++)

if(p[i]>p[j]){

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

}

void swap2(int *p,int n){

int temp;

for(int i=0;i<n-1;i++)

for(int j=i+1;j<n;j++)

if(p[i]<p[j]){

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

}

int main(){

char n;int a[15];

while(~scanf("%c",&n)){

for(int i=0;i<10;i++){

scanf("%d",&a[i]);

}

getchar();

if(n=='A') swap1(a,10);

else swap2(a,10);

for(int i=0;i<10;i++){

if(i==0)printf("%d",a[i]);

else printf(" %d",a[i]);

}

printf(" ");

}

}

运行效果:

(8)c语言字符串编程题扩展阅读:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--&gt;m域宽,打印出来以后,在控制台上,显示m位;

如果我们要打印的数的位数如果超过我们设定m则原样输出;

如果我们要打印的数的位数如果小于我们设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

⑼ 求一个关于字符串的c语言编程题目,谢谢

#include<stdio.h>
#include<stdlib.h>

intmain()
{
charstr[1000];
gets(str);//默认输入中没有换行,按行输入所有字符
inti,j,max;
for(i=0;i<strlen(str);++i){
if(str[i]>='0'&&str[i]<='9'){//读到一个数字后就假设其后还有数字并寻找最大的数值,存入max,直到数字结束
max=str[i++]-'0';
while(1){
if(str[i]>='0'&&str[i]<='9'&&i<strlen(str)){
max=(str[i]-'0')>max?(str[i]-'0'):max;
i++;
}
else
break;
}
while(1){//数字结束后从后一个字符开始找大写字母
if(i<strlen(str)){//防止数组越界
if(str[i]>='A'&&str[i]<='Z'){//找到大写字母后开始输出
printf("%c",str[i++]);
for(j=1;j<max;++j){//输出字符数大于max或遇到其它字符时停止,并换行
if(str[i]>='a'&&str[i]<='z'){
printf("%c",str[i++]);
}
else{
printf(" ");
break;
}
}
if(j==max)printf(" ");
}
elseif(str[i]>='0'&&str[i]<='9')
break;
else
i++;
}
else
break;
}
}
}
return0;
}


也不是完全理解你的意思,但至少样例能跑出来。这段代码建立在这样的基础上:

(1) 输入的字符串没有换行符;

(2) 发现一个大写字母后输出的是它之后的从a~z的字母,不包含其它。


你可以根据你的意思跑点例子,发现问题再告诉我,可以改,有问题可追问。

⑽ C语言有关字符串的编程题

int frequency(const char *str, char c)
{
int count = 0;
char *p = str;
while (*p != '\0')
{
if (*p++ == c)
count++;
}
return count;
}
void main()
{
char *str = "addccdeddsa";
printf("%d\n", frequency(str, 'd'));
}

热点内容
c与java编译过程 发布:2025-02-12 21:47:47 浏览:373
python的面向对象 发布:2025-02-12 21:46:10 浏览:613
医学影像存储解决方案 发布:2025-02-12 21:45:58 浏览:976
股票走势预测算法 发布:2025-02-12 21:45:06 浏览:769
游戏lua脚本 发布:2025-02-12 21:45:01 浏览:918
怎么下载安卓版的光子助手 发布:2025-02-12 21:43:45 浏览:454
oppor7s怎么取消锁屏密码 发布:2025-02-12 21:43:31 浏览:595
我的世界服务器甜蜜小镇 发布:2025-02-12 21:41:08 浏览:75
ftp影响数据交换 发布:2025-02-12 21:27:18 浏览:387
编译原理与实现pdf 发布:2025-02-12 21:27:14 浏览:42