C 我的程序需要输入
我需要用它来写一个代码 给定一个输入字符串,通过优先于其类型的第一个字符对其进行编码 输入格式 输入包含带有 约束条件C 我的程序需要输入,c,C,我需要用它来写一个代码 给定一个输入字符串,通过优先于其类型的第一个字符对其进行编码 输入格式 输入包含带有 约束条件 1 <= length <= 200 这是我的密码: #include <math.h> #include <stdio.h> #include <string.h> #define N 201 #define dif ('a'-'A') int main() { char arr[N],res[N],lower[N
1 <= length <= 200
这是我的密码:
#include <math.h>
#include <stdio.h>
#include <string.h>
#define N 201
#define dif ('a'-'A')
int main() {
char arr[N],res[N],lower[N];
scanf("%s",arr);
int index=0,cnt=0,i;
for(i=0;arr[i]!='\0';i++)
{
lower[i] = arr[i];
if(arr[i]>='A'&&arr[i]<='Z')
lower[i] += dif;
}
index = 0;
res[cnt] = arr[0];
cnt++;
for(i=0;lower[i]!='\0';i++)
{
if(lower[i]!=lower[i+1])
{
if(i+1-index!=1)
{
res[cnt] = i-index+1+48;
cnt++;
}
res[cnt] = arr[i+1];
cnt+=1;
index = i+1;
}
}
res[cnt] = '\0';
printf("%s",res);
return 0;
}
#包括
#包括
#包括
#定义N 201
#定义dif('a'-'a')
int main(){
字符arr[N],res[N],lower[N];
scanf(“%s”,arr);
int指数=0,cnt=0,i;
对于(i=0;arr[i]!='\0';i++)
{
下[i]=arr[i];
如果(arr[i]>='A'&&arr[i]您可以执行以下操作:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 201
int main() {
char arr[N],res[N];
int count,i,j;
printf ("Enter alphabetic string:\n");
fgets(arr, N, stdin);
arr[strcspn(arr, "\n")] = 0;
size_t len = strlen(arr);
for (i = 0, j = 0, count = 0; i < len; i++) {
if (!isalpha(arr[i])) {
printf ("Invalid character <%c> in string %s\n", arr[i], arr);
return -1;
}
if (i == 0) {
res[j++] = arr[i];
continue;
}
if (tolower(arr[i]) == tolower(arr[i-1]))
count++;
else {
if (count == 0) {
res[j++] = arr[i];
} else {
res[j++] = count + '0' + 1;
res[j++] = arr[i];
count = 0;
}
}
}
if (count != 0)
res[j++] = count + '0' + 1;
res[j] = '\0';
printf ("result : %s\n", res);
return 0;
}
请注意,该程序没有检查count
值,如果一个字符在输入字符串中连续出现超过9次,那么您得到的输出将在输出字符串中包含一些字符,而不是该字符计数。我将让您自行添加代码来处理此特定情况。请重新表述您的prose来提高可读性。前几行很难理解,或者(至少对我来说)根本无法理解。另外,阅读。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define N 201
int main() {
char arr[N],res[N];
int count,i,j;
printf ("Enter alphabetic string:\n");
fgets(arr, N, stdin);
arr[strcspn(arr, "\n")] = 0;
size_t len = strlen(arr);
for (i = 0, j = 0, count = 0; i < len; i++) {
if (!isalpha(arr[i])) {
printf ("Invalid character <%c> in string %s\n", arr[i], arr);
return -1;
}
if (i == 0) {
res[j++] = arr[i];
continue;
}
if (tolower(arr[i]) == tolower(arr[i-1]))
count++;
else {
if (count == 0) {
res[j++] = arr[i];
} else {
res[j++] = count + '0' + 1;
res[j++] = arr[i];
count = 0;
}
}
}
if (count != 0)
res[j++] = count + '0' + 1;
res[j] = '\0';
printf ("result : %s\n", res);
return 0;
}
$ ./a.out
Enter alphabatic string:
abbcc
result : ab2c2
$ ./a.out
Enter alphabatic string:
aAABbb
result : a3B3
$ ./a.out
Enter alphabatic string:
rrrfVvVd
result : r3fV3d
$ ./a.out
Enter alphabatic string:
QQQaaaaeeeeeeeeeccFg
result : Q3a4e9c2Fg