private DataType conversionSpecifierToDataType(String conversionSpecifier) {
		switch (conversionSpecifier.charAt(0)) {
			case 'd':
			case 'i':
				return new IntegerDataType(dataTypeManager);
			case 'o':
			case 'u':
			case 'x':
			case 'X':
				return new UnsignedIntegerDataType(dataTypeManager);
			case 'p':
				return dataTypeManager.getPointer(DataType.VOID);
			case 's':
				return dataTypeManager.getPointer(new CharDataType(dataTypeManager));
			case 'n':
				return dataTypeManager.getPointer(new IntegerDataType(dataTypeManager));
			case 'c':
				return new UnsignedCharDataType(dataTypeManager);
			case 'a':
			case 'A':
			case 'g':
			case 'G':
			case 'e':
			case 'E':
			case 'f':
				return new DoubleDataType(dataTypeManager);
			case 'S':
			case 'C':
				return dataTypeManager.getPointer(new WideCharDataType(dataTypeManager));
			default:
				return null;
		}
	}
Skips a series of numbers (field width or precision) within a format String.
returns the index of the format String at the last digit before another
non-digit character

@param formatString format String
@param i      index into formatStr
@return new index into formatString
Ghidra/Features/DecompilerDependent/src/main/java/ghidra/app/plugin/core/string/variadic/FormatStringParser.java