oj-关于c语言字符中的问题

问题描述

关于c语言字符中的问题

想了许久反而问题更多了的c语言题目,小白实在是无能为力了,求各位大神解惑。谢谢!

Description
字符串是由一个一个字符组成起来的字符数组,每一个字符都是它的一个元素,那么,现在给出字符串的初始化语句,要求你计算该字符串中不同元素个数。
Input
多组数据测试。
输入包括一行字符,由“char”+“name[]=”+“Str”组成。
name对应的一串由数字组成和字母组成的字符串Str,由双引号括起来,表示name字符串的初始化为Str。整行长度不超过100,题目保证变量名合法。
Output
每组数据输出一行,每一行输出数组名及不同元素个数
Sample Input
char str1 [] = "helloworld";
char str2 [] = "helloworld12138";

Sample Output
str1 7
str2 11

解决方案

 #include <stdio.h>

void main()
{
    int arr[256];
    int i;
    for (i = 0; i< 256; i++) arr[i] = 0;
    char str2 [] = "helloworld12138";
    i = 0;
    while (str2[i++] != '') arr[(int)str2[i]]++;
    int n = 0;
    for (i = 0; i< 256; i++) if (arr[i] > 0) n++;
    printf("%d", n);
}

解决方案二:

输入输出你就自己搞定吧。

时间: 2024-12-06 22:22:16

oj-关于c语言字符中的问题的相关文章

指针-新手OJ,C语言 去除字符串中的所有空格模块, 不知为何出错,求大神指点

问题描述 新手OJ,C语言 去除字符串中的所有空格模块, 不知为何出错,求大神指点 作用: 把数组a中的所有空格去除, 并把后面的往前移动.例如: a b c变成:abc 字符指针 *p *q 数组a[] for(p=&a[0]; p!=''; p++)if(*p==' ')for(q=p; *(q+1)!=''; q++)*q=(q+1); //去除a字符串中的空格 但总是不对, 求大神指点. 解决方案 #include<stdio.h>int main(){ char str[20

c语言字符数组中回车符问题?

问题描述 c语言字符数组中回车符问题? //getline函数:将一行读入到S中并返回其长度 int getline(char s[] ,int length) { int c,i; for(i=0; i<length-1 && (c=getchar())!=EOF && c!='n';++i) s[i]=c; if(c == 'n'){ s[i] = c; ++i; } s[i]=''; return i; } 我想问一下,这里的if(c =='n')有什么用?我觉

编程c语言-新手OJ, 找出字符串中出现最多的字母,本机运行正确, 但是wrong answer, 求大神指点

问题描述 新手OJ, 找出字符串中出现最多的字母,本机运行正确, 但是wrong answer, 求大神指点 Description 钟Sir是一个迷信的(superstitious)家伙.他相信每一个字符串(string)里都有一个幸运字符.我们可以通过以下方法找到这个字符.例如,在字符串abbccc中,c 出现的次数最多,所以这个幸运字符就是 c 啦!(>_<) ?(钟Sir的想法好简单啊-) Input 第一行是测试数据的组数n,接下来的每组测试数据占一行,每行数据不超过1000个字符且

c语言-求问一个C语言字符指针的问题

问题描述 求问一个C语言字符指针的问题 #include void Initialize (char * a, char * b) { a[0] = 'T'; a[1] = 'h'; a[2] = 'i'; a[3] = 's'; a[4] = ' '; a[5] = 'i'; a[6] = 's'; a[7] = ' '; a[8] = 'A'; a[9] = ''; b = a; b[8] = 'B'; } #define ARRAY_SIZE 10 char a[ARRAY_SIZE];

怎么在c语言程序中一个读入函数

问题描述 怎么在c语言程序中一个读入函数 在c语言中如何读入一个函数 ,并且运用这个函数? 我在编写科学计算器的定积分运算的时候遇到了需要用户自己输入一个函数然后才 能计算该函数的定积分的问题.请问1怎么才能读入一个函数,并利用这个函数呢? 解决方案 http://download.csdn.net/detail/lpw32682770/1587368 解决方案二: 读入函数是什么意思,编译器自带的库里的函数只要引入对应的头文件就可以使用了,如果是封装在DLL里的函数要先获得函数的地址 解决方案

malloc-C语言字符指针问题求解答

问题描述 C语言字符指针问题求解答 main(){ char * a; a=(char * )malloc(40); scanf(""%s""* a );}上面代码中的scanf(""%s""* a);这行为什么是合法的?请赐教!不好意思第一次代码输错了-_- 解决方案 创建了一个40个字符长度的缓冲区,然后输入字符到这个缓冲区中.你测试下就知道了. 解决方案二: a=(char)malloc(40); 看不懂这要干嘛,怎么不

c语言-C语言字符是左值 为什么可修改

问题描述 C语言字符是左值 为什么可修改 #include using namespace std; int main() { char c[6] = "hello"; c = "s"; //为什么c是不可被修改的左值 c[2] = 's'; //而c中的元素都可以被修改? return 0; } 解决方案 数组名是常量型指针,即 const ,当然不能修改:这个与 const 型常量是一样的,定义了就不能修改. c 中的元素,是编译器在堆栈上分配的一块内存,当然可

c语言-C语言学习过程中遇到的问题

问题描述 C语言学习过程中遇到的问题 我用VS12013写C程序时代码调试过程中会显示有错误:某个函数调用的参数太少,这是什么意思啊?不知道应该怎么解决,还有另一个问题就是,我用VS2013写C程序中调用某些函数时要在函数名后面加_s,比如scanf_s, strcpy_s,这是为什么呢,我不知道用哪些函数是要加,哪些不用加,拜托哪位懂的帮我解答一下,非常感谢~~ 解决方案 (1)参数太少就是一个函数比如有2个参数,你调用的时候只传了一个 (2)加上_s是这些函数的安全版本,所谓安全,就是有额外

c语言-新手OJ, C语言 字符串顺序后移模块,超时,优化无思路 求大神对指点

问题描述 新手OJ, C语言 字符串顺序后移模块,超时,优化无思路 求大神对指点 for(i=1; i<=m; i++){ a=z[n]; for(p=&z[n]; p>=&z[2]; p--)p=(p-1); z[1]=a; } ++++++++++++++++++++++++++++++++++++++++ 作用:将数组z[n]中的所有元素进行向右移m位, 多出来的左端补上. 例如: 12345 m=1 变成 51234 但是我的算法效率太低, 当数组很长, m很大时超时,