Q500.(10分数, 语言: C)利用指针能直接操作内存的特点来编程输出字符串中每个字符在内存中的存储编码(字符串中可以包含英文数字和汉字)。 程序的运行示例1如下: 请输入一个字符串,长度小于等于100:abcABC012中国人 该字符串的内存编码为: 61 62 63 41 42 43 30 31 32 d6 d0 b9 fa c8 cb 程序的运行示例2如下: 请输入一个字符串,长度小于等于100:12345上山打老虎 该字符串的内存编码为: 31 32 33 34 35 c9 cf c9 bd b4 f2 c0 cf bb a2 提示: 输出格式用"%x " 提示:为了不输出多余的ffff, 请用printf("%x ", (unsigned char)str[i] & 0xff); 或者 if (str[i] > 0xffffff00) printf("%x ", str[i] -0xffffff00);
#include <stdio.h>
#include <string.h>
#define N 100
void main(){
char str[101] = {'\0'};
char *p1,*p2;
printf("请输入一个字符串,长度小于等于100:");
scanf("%s",str);
p1 = (char *)(str + strlen(str));
p2 = (char *)str;
printf("该字符串的内存编码为: ");
while(p1 > p2){
printf("%x ",(unsigned char)*p2 & 0xff);
p2++;
}
return 0;
}
Q1317.(10分数, 语言: C)写一个函数,输入一行字符,将此字符串中最长的单词输出。 输入提示信息:"输入一行文本:\n" 用gets()输入一行字符 输出提示信息:"\n最长的单词是:" 输出字符用"%c" 输出所有字符后用"\n" 程序的运行示例如下: 输入一行文本:I am a student. 最长的单词是:student
#include <stdio.h>
#include <string.h>
#define N 80
void main()
{
char str[N];
char s[N][N] = {'\0'};
printf("输入一行文本:\n");
gets(str);
int j = 0, k = 0;
for (int i = 0; str[i] != '\0'; i++)
{
if (str[i] != ' '&&((str[i]>='a'&&str[i]<='z')||str[i]>='A'&&str[i]<='Z'))
{
s[k][j++] = str[i];
}
else
{
s[k][j] = '\0';
k++;
j = 0;
}
}
int maxpos = 0, max = 0;
for (int i = 0; i <= k; i++)
{
if (strlen(s[i]) > max)
{
max = strlen(s[i]);
maxpos = i;
}
}
printf("\n最长的单词是:");
for (int i = 0; s[maxpos][i] != '\0'; i++)
{
printf("%c", s[maxpos][i]);
}
printf("\n");
}
Q2330.(10分数, 语言: C)输入一个英文句子(输入句子以回车作为结束,句子长度包括标点符号并且不超过20),翻转句子中单词的顺序,但单词内字符的顺序不变。标点符号和普通字母一样处理。例如输入字符串“I am a student.”,则输出“student.a am I” 输入提示信息:Input Sentence: 输出提示信息:Output Reverse Sentence:
#include <stdio.h>
#include <string.h>
#define N 80
void main()
{
char str[N];
char s[N][N] = {'\0'};
printf("Input Sentence:");
gets(str);
int j = 0, k = 0;
for (int i = 0; str[i] != '\0'; i++)
{
if (str[i] != ' ')
{
s[k][j++] = str[i];
}
else
{
s[k][j] = '\0';
k++;
j = 0;
}
}
printf("Output Reverse Sentence:");
for (int i = k; i>=0; i--)
{
if(i==0){
printf("%s", s[i]);
}else{
printf("%s ", s[i]);
}
}
printf("\n");
}